Microsoft OneDrive Business/Office 365 Proは1 TBのクラウドストレージを提供していますが、残念ながらLinuxで同期する方法はありませんでした。
現在、実験的なOneDrive-dは、Microsoft Sharepointリンクを受け入れないため、個人のOneDriveアカウントのみを同期できるオープンソースプログラムです。 GoodSync for Linux を使用してOneDrive Business/Office 365を同期する方法を次に示します。これは個人での使用は無料です。
Linuxマシンに適切なバージョンをインストールします。例:
./goodsync-linux-x86_64-release.run
GoodSync ConnectセットアップとGsServer Web UIの両方に対してnoで回答します。
https://xxxxxxx.sharepoint.com/xxxxxxxxxxx/Documents/Forms/All.aspx
のようになり、それに基づいて同期リンクを取得します。これはoffice365://xxxxxxx.sharepoint.com/xxxxxxxxxxx/Documents
になります。自宅の.goodsyncサブフォルダーに新しいファイルを作成します。
gedit ~/.goodsync/jobs.tix
ファイルに次のコードを入力して保存します。
<Job>
Name = "OneDrive_Sync"
Side1 = <SideOptions>
Dir = <Connect>
Url = "put_your_syncing_link_here"
UserID = "put_your_OneDrive/Office365_Bussiness_email_here"
</Connect>
</SideOptions>
Side2 = <SideOptions>
Dir = <Connect>
Url = "file:///your_home_folder/one_drive_folder"
</Connect>
</SideOptions>
Direction = 0
ExcludeHidden = No
ExcludeSystem = No
DetectMovesAndRenames = Yes
LinksOption = 1
ExcludeEmptyFolders = No
LimitChangesPercent = 100
AutoResolveConflicts = 3
DetectMovesAndRenames = Yes
</Job>
同期プロセスを開始します。
gsync sync "OneDrive_Sync"
このステップでは、WebブラウザーがOneDrive/Office 365ページを開き、goodsyncがアカウントにアクセスできるようにするための承認を求めます。資格情報を入力すると、同期が開始されます。
制限:マイクロソフトは270文字を超える長さのURLリクエストを許可しないため、GoodSyncは長いパス名を持つファイルを同期できません。
楽しい!
Ubuntu 18.04以降のデフォルトのUbuntuリポジトリにはOneDriveクライアントがあります。 OneDriveは、Microsoftのクラウドストレージシステムです。このパッケージは、OneDriveクラウドストレージとの同期に特化したコマンドラインクライアントを提供します。
以下でインストールします:
Sudo apt install OneDrive
最初の実行時に、リンクで認証するように求められます。認証後、systemctl --user enable OneDrive
でsystemctl --user start OneDrive
でデーモンを有効にできます。詳細については、マンページman OneDrive
を参照してください。セットアップは非常に簡単で、所要時間はわずか5分です。
Xybuが元々使用していたonedrived
ツールは、OneDrive for Businessではなく個人のOneDriveのみをサポートしています。ただし、 derrix060によるGitHubでのこのプロジェクトの分岐 があり、ビジネスクライアント向けに何らかの形で(まだバグがありますが)実装されています。
警告:この方法を使用する場合は、 https:/でオンラインでファイルをチェックして、ファイルが正しく同期されたことを常に確認することを強くお勧めします/www.office.com 、および/またはこのページの最後に示すラッパースクリプトを使用して、少なくともデスクトップ通知を使用してエラーを通知します!
Onedrivedが一部の変更の取得に失敗したり、正しくアップロードしたりして、OneDriveが(部分的に)同期されていない状態になることがあります。また、何らかの理由で自身とのマージの競合が発生し、ホスト名を括弧とオプションで数字で追加することにより、ファイルの名前をローカルで変更することもあります。残念ながら、エラーに関する通知はありませんが、ログファイルのエントリを見ることができます。
これが発生した場合は、たとえば、それらに触れたり、名前を変更したり、フォルダーの名前を変更したりします。
ヒント:onedrivedライブラリには、特にOneDriveルートに直接保存されたファイルに関する問題があることが多いようです。 OneDriveフォルダーに直接ダンプするのではなく、すべてのファイルをサブディレクトリに配置する方がおそらく良いでしょう。
馬鹿げているように聞こえますが、ファイルを作成またはコピー/移動するよりも、OneDrive Webクライアントを介してファイルをアップロードし、ローカルフォルダーに同期されるまで待機する(ただし数分かかる場合がある)方が問題が少ないようです。ローカル。これが実用的であるか完全に無効であるかは、OneDriveの目的はあなた自身の決定次第です...
完全なインストール手順については、プロジェクトのreadmeファイルを参照してください。ただし、簡単な要約を次に示します。
onedrived
(またはOneDrive-d
)の他のバージョンがインストールされていないことを確認してください。
依存関係パッケージをインストールします。
Sudo apt install build-essential python3-dev libssl-dev inotify-tools python3-dbus libdbus-1-dev libdbus-glib-1-dev
https://ngrok.com/download の公式WebサイトからLinux用の最新のngrok
クライアントをダウンロードします。 Ubuntuリポジトリのngrok-client
パッケージは古すぎるため、要件を満たしていません。
ダウンロードしたngrok-stable-linux-AMD64.Zip
アーカイブを解凍します。単一のngrok
バイナリが含まれており、$PATH
の場所に配置する必要があります。 /usr/local/bin/
に。
ngrokへのサインアップはおそらく必要ありません。
pip3
を使用して、GitHubからonedrived
Python3アプリケーションをインストールします。
Sudo -H pip3 install git+https://github.com/derrix060/onedriveClient.git
必要に応じて、onedrived
のログファイルの場所を設定します。ここでは、何かが正常に機能しない場合に問題をチェックできます。
onedrived-pref config set logfile_path ~/.config/onedrived/onedrived.log
インストールが成功したら、アカウントとドライブを設定する必要があります。
以下を実行して、インタラクティブモードを使用してOneDrive for Businessアカウントを追加します。
onedrived-pref account add -b
対話型ウィザードは、ブラウザでリンクを開くように2回要求します。このリンクでは、Microsoft Businessアカウントでアプリケーションを承認する必要があります。
承認を確認した後、リダイレクト先のURLをインタラクティブウィザードに貼り付けるように求められます。指示どおりに実行し、コマンドの指示に従ってください。
以下のコマンドの出力を確認して、アカウントが正常に追加されたことを確認します。次のように表示され、ログインしているアカウントがリストされます。
$ onedrived-pref account list
All OneDrive accounts associated with user "YOUR_UBUNTU_USERNAME":
# Account ID Owner Name Email Address Profile Type
--- ------------------------- ------------- -------------------- --------------
0 YOUR_PERSONAL_ACCOUNT_ID YOUR_NAME YOUR_BUSINESS_EMAIL Business
以下を実行して、ドライブを対話型コマンドモードで構成します。
onedrived-pref drive set
すべてのドライブのリストが表示され、ローカル構成に追加するドライブの行番号の入力を求められます。
次に、ドライブと同期するためのルートフォルダーとして使用するローカルディレクトリを指定する必要があります。あなたはただ打つことができます Enter デフォルトの~/OneDrive
を使用します。パスが存在しない場合は作成されます。使用したい無視ファイルへのパスについても同じです。 Enter デフォルトの~/.config/onedrived/ignore_v2.txt
を使用し、必要に応じて作成します。
以下のコマンドの出力を確認して、使用可能な構成済みのすべてのドライブに関する情報を表示します。 Drives that have been set up
の見出しの下に、正しい設定でセットアップしたドライブが表示されます。
onedrived-pref drive list
ドライブが構成されたので、onedrived
デーモンを試して起動する必要があります。そうでなければ見逃してしまうような問題がある場合に備えて、まずデバッグモードで起動することをお勧めします。これはフォアグラウンドでonedrived
を開始します:
onedrived start --debug
すべてが正常で、コマンドがクラッシュして終了しない場合は、ローカルのOneDriveフォルダーにいくつかのファイルを配置して、同期するかどうかを確認してください。 https://www.office.com のOneDrive Webアプリケーションにアクセスし、ローカルに追加したファイルがそこに表示されているかどうかを確認することで、おそらく確認できるはずです。
を押して、端末のonedrived
プロセスを再び終了できます。 Ctrl+C。
onedrived
を正常に起動するには、バックグラウンドデーモンとして、次のコマンドで実行します。
onedrived start
おそらく、このコマンドをスタートアップアプリケーションに追加して、ログインするたびに自動起動するようにする必要があります。詳細については、 ログイン時にアプリケーションを自動的に起動する方法 を参照してください。
onedrived
がエラー(ファイル同期の失敗など)をログに記録するたびにデスクトップ通知を取得する場合、ログファイルをリアルタイムで解析し、notify-sendを使用して表示するラッパースクリプトを次に示します。
onedrived start
コマンドの代わりに、引数なしでラッパースクリプトを開始(または自動開始アプリケーションに配置)できます。
#!/bin/bash
LOGFILE=~/.config/onedrived/onedrived.log
ICON_START=weather-overcast
ICON_STOP=weather-few-clouds
ICON_ERROR=weather-severe-alert
onexit () {
onedrived stop
notify-send -i "$ICON_STOP" "OneDrive" "Wrapper stopped"
echo "onedrived-wrapper stopped"
}
trap onexit EXIT
onedrived stop
echo "---" >> "$LOGFILE"
onedrived start || {
echo "Failed to start onedrived!"
exit 1
}
notify-send -i "$ICON_START" "OneDrive" "Wrapper started"
echo "Monitoring onedrived.log for error messages..."
tail -n 1 -F --pid="$(pgrep -f "onedrived start")" "$LOGFILE" |
while read LINE ; do
echo "$LINE"
if MESSAGE="$(grep -Pio '(?<=ERROR: ).*' <<< "$LINE")" ; then
notify-send -i "$ICON_ERROR" "OneDrive Error" "$MESSAGE"
fi
done