2つのローカルディレクトリを同期するのにrsyncを使っていたのだが、よくも悪くもUnix的なプログラムなのでパスの指定でうまくいかないことがあった。 あとから気づいたのだが、同期したいディレクトリの中にまるまる同名のディレクトリができていた。 もう少しユーザーフレンドリーなプログラムがあれば好ましいと思ったが、たまたまunisonというプログラムがあることを知った。 試していないがこのプログラムはマルチプラットフォームで動作するようだ。

インストール

$ sudo apt install unison

コマンドの実行について

$ unison /home/nzwsch/Public/ /mnt/myshare/

初回はプログラムを実行すると対話形式だった。 同期するディレクトリに含めたい、あるいは含めたくない場合はここで選択できる。

自動実行

$ unison --batch=true /home/nzwsch/Public/ /mnt/myshare/

--batch=trueを追加するだけでディレクトリ間を同期してくれるようになった。

同期元にファイルを追加削除したり、同期先にファイルを追加削除しても想定したとおりに動作している。 これを使えば1対多の同期ができると思う。 あとはcrontabに追記すればよい。