準備
Free Client for OneDrive on Linux というものを用いる。
現在のところ、下記のリポジトリで動作する模様
https://github.com/abraunegg/onedrive
skilionのリポジトリでの手順は以下にある通り。インストール手順はやや変わっているので本家を参照のこと。
https://qiita.com/afj/items/61ca815aa37d87bd391d
https://abyssluke.hatenablog.com/entry/2018/05/29/120000
ログ
onedrive --monitor
を実行していたところ、下記のエラーを吐いて停止してしまった。
[filename] ... Giving up on sync after three attempts: [filename]: No such file or directory
std.file.FileException@/home/hogehoge/dlang/dmd-2.085.0/linux/bin64/../../src/phobos/std/file.d(1554): [filename]: No such file or directory
----------------
/home/hogehoge/dlang/dmd-2.085.0/linux/bin64/../../src/phobos/std/file.d:276 @trusted bool std.file.cenforce!(bool).cenforce(bool, scope const(char)[], scope const(char)*, immutable(char)[], ulong) [0x5853d0]
/home/hogehoge/dlang/dmd-2.085.0/linux/bin64/../../src/phobos/std/file.d:265 @safe void std.file.setTimes!(immutable(char)[]).setTimes(immutable(char)[], std.datetime.systime.SysTime, std.datetime.systime.SysTime) [0x5a15fa]
src/sync.d:1012 void sync.SyncEngine.downloadFileItem(itemdb.Item, immutable(char)[]) [0x5dfb4d]
src/sync.d:902 void sync.SyncEngine.applyNewItem(itemdb.Item, immutable(char)[]) [0x5df320]
src/sync.d:862 void sync.SyncEngine.applyDifference(std.json.JSONValue, immutable(char)[], bool) [0x5df000]
src/sync.d:667 void sync.SyncEngine.applyDifferences(immutable(char)[], const(char)[]) [0x5de08e]
src/sync.d:320 void sync.SyncEngine.applyDifferences() [0x5dc701]
src/main.d:762 void main.performSync(sync.SyncEngine, immutable(char)[], bool, bool, bool, long) [0x5b6dd9]
src/main.d:643 _Dmain [0x5b65d3]
はて、どうしたものか。
ps -ax | grep onedrive
で確認すると、停止後もプロセスは残っているので kill した後に再度
onedrive --monitor
を実行すると、しばらく同期を再開するものの、別のファイルで再び停止してしまう。何度やっても同様の結果になる。
もしかすると単にタイムアウトしているだけなのか?
追記
5回目くらいの挑戦で、途中で止まること無く最後まで同期が完了した。途中で停止した理由は不明だが、ネットワークの不調かファイル名の問題か、、あたりかもしれない。ファイル名については後日調査するかも。