フォルダa/とリモートフォルダA/があります。Makefileで次のようなものを実行します。
get-music:
rsync -avzru server:/media/10001/music/ /media/Incoming/music/
put-music:
rsync -avzru /media/Incoming/music/ server:/media/10001/music/
sync-music: get-music put-music
sync-musicを作成すると、最初にサーバーからローカルにすべてのdiffが取得され、次にその逆で、ローカルからサーバーにすべてのdiffが送信されます。
これは、将来的に更新または新しいファイルがある場合にのみ非常にうまく機能します。削除がある場合、それは何もしません。
rsyncには、私が望むことを達成するのに役立つ--deleteオプションと--delete-afterオプションがありますが、双方向同期では機能しません。
Synでサーバーファイルを削除したい場合、ローカルファイルが削除されていれば機能しますが、何らかの理由で(後で説明します)サーバーにはないがローカルに存在し、削除されたファイルがある場合は、サーバーでコピーするのではなく、ローカルでそれらを削除したい(たまたま)。
コンテキスト内に3台のマシンがあります。
- デスクトップ
- ノート
- ホームサーバー
そのため、たとえば、ノートブックの同期で削除されたファイルがサーバーにある場合があります。次に、デスクトップ(削除されたサーバーファイルがまだ存在する場所)と同期を実行するときに、これらのファイルを削除したいのですが、サーバーに再度コピーされました。
私はこれがデータベースと操作の追跡でのみ可能だと思います:P
より簡単な解決策はありますか?ありがとうございました。