UbuntuでOneDriveを使う

Ubuntuをファイルサーバとして動作させているのですが、OneDriveと同期できるようなればかなり便利だと思いましたので、OneDrive Free Clientというソフトウェアを試してみました。

Free Client for OneDrive on Linux. Contribute to skilion/onedrive development by creating an account on GitHub.

環境

Ubuntu 18.04 Desktop 64bit

必要なソフトのインストール

以下をインストールしておきます。
私はUbuntu 18.04をインストールする際に、「最小インストール」を選んだため諸々のツールもここでインストールしました。

  • make
  • git
  • libcurl
  • SQLite 3
  • Digital Mars D Compiler (DMD)
sudo apt install make
sudo apt install git
sudo apt install libcurl4-openssl-dev
sudo apt install libsqlite3-dev
wget http://downloads.dlang.org/releases/2.x/2.080.1/dmd_2.080.1-0_amd64.deb
sudo gdebi dmd_2.080.1-0_amd64.deb

今回は、Digital Mars D Compiler 2.080.1(2018年6月時点の最新版)をインストールしました。
その時点の最新版をインストールしておけば、たぶん大丈夫だと思います。

OneDrive Free Clientのインストール

OneDrive Free Clientは、gitのリポジトリをcloneしてインストールします。

cd ~
git clone https://github.com/skilion/onedrive.git
cd onedrive
make
sudo make install

OneDrive Free Client の設定

設定ファイルを所定の場所に配置し、必要な設定を行います。

mkdir -p ~/.config/onedrive
cp ./config ~/.config/onedrive/config

設定ファイルの中身はこんな感じです。

# Directory where the files will be synced
sync_dir = "~/OneDrive"
# Skip files and directories that match this pattern
skip_file = ".*|~*"

sync_dir というパラメータが、Onedriveの同期ディレクトリになりますので、任意の場所を指定しましょう。
onedriveを実行するユーザがアクセスできるディレクトリであれば、どこでも大丈夫です。

特定のディレクトリやファイルのみを同期したい場合は、sync_list というファイルを作成して同期したいディレクトリ名やファイル名を記述します。
そうすることで、特定のディレクトリ・ファイルのみを同期することができます。

vi ~/.config/onedrive/sync_list

sync_listの中身は、こんな感じで書きます。(githubのreadmeそのままですが)
単純に、ディレクトリ名を1行ずつ書けばOKです。

Backup
Documents/latest_report.docx
Work/ProjectX
notes.txt

sync_listを変更したら、onedriveコマンドを使って完全同期を実行する必要がありますので、注意が必要です。

onedrive --resync

自動起動の設定

Onedriveの設定が終わったら、自動起動を有効化し起動させます。

systemctl --user enable onedrive
systemctl --user start onedrive

初期起動後の設定

onedriveコマンドを実行して、初期設定を行います。

onedrive

onedriveコマンドを実行するとターミナルの標準出力にURLが表示されますので、ブラウザでこのURLへアクセスしましょう。
こんな感じです。

Authorize this app visiting:

 https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=**********

ブラウザでアクセスすると、Microsoftアカウントのログイン画面になりますので、同期したいOnedriveのアカウントでログインしましょう。
Onedriveクライアント(今回だとOneDrive Free Client)からのアクセスを許可するかの確認を求められますので、許可しましょう。

その後、真っ白なページが表示されます。
ターミナルには、以下のようにURIの入力を求める表示が出ていると思いますので、この真っ白なページのURLをターミナルに入力します。

Enter the response uri:

これで、Onedriveの同期が始まります。

その他

OneDrive Free Clientのログは、以下のコマンドで確認できます。

journalctl --user-unit onedrive

-fオプションをつけると、ログを流し続けることができます。「tail -f」と同じですね。

journalctl --user-unit onedrive -f

まとめ

私の環境では、問題なくOneDriveと同期することができました。
これで、家の中にある全てのPCで写真などを共有しつつ、OneDriveへもコピーすることができるので、とても便利になったと思います。
まだ使い始めなので、同期速度などがどうなのかはこれからの評価になりますが、まずは満足しています。
インストール自体も楽なので、おすすめです。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク