ノートテキストファイルは全文検索できるよう Google ドライブと同期しておきたい。それと同時に他の PC との同期のため Dropbox とも同期しておきたい。しかしセキュリティを考えてクラウド同期サービスは使いたくない。
Google の「バックアップと同期」アプリと Dropbox アプリの両方を動かしてそれぞれローカルフォルダと動機している MacBook Pro 上で、そのローカルフォルダ間のファイル同期を実行してみることにした。
使うのは普段リモートホストとの同期に使用している Unison File Synchronizer。最近になって repeat = watch というファイル更新をモニタリングするオプションを知ったので試してみる。
unison-fsmonitor を用意する
ファイル更新モニタリングで使う Unison 標準の unison-fsmonitor は macOS では使えないらしいので代替の https://github.com/autozimu/unison-fsmonitor をインストールする。
$ brew install autozimu/homebrew-formulas/unison-fsmonitor
Unison のプロファイルを作成する
Unison の同期用のプロファイルは以下のような感じ。
root = /Users/naney/Google ドライブ/folderA
root = /Users/naney/Dropbox/folderA
times = true
repeat = watch
silent = true
logfile = /Users/naney/var/log/unison.log
(実際には path や ignore をもう少し指定している。)
同期する
repeat = watch と silent = true をいったんコメントアウトして
$ unison <プロファイル名>
で手動同期し、期待通りの同期ができているか確認する。問題無ければ
$ nohup unison <プロファイル名> &
で監視を開始する。
動作確認した感じでは
ローカルフォルダでファイルが更新されると Unison は即同期してくれる。
ローカルフォルダ(Google ドライブ側の)・ローカルフォルダ(Dropbox 側)・Google ドライブ上・Dropbox 上のどこを更新しても、MacBook Pro が動いている時にいい感じに同期された。
MacBook Pro をスリープ・スリープ解除させても問題ない。
Google ドライブ・Dropbox どちらも履歴が残る(削除 & 新規作成になったりしない)。
CPU 使用率・メモリ使用量問題なし。
と安定して使える感じだ。
コンフリクトが起きた場合はスキップされたままになるので、たまに手動で Unison を実行して確認した方が良さそうではある。
[ ノート・日記はテキストファイルに ]