[解決済み] rsyncによる双方向同期
質問
私は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を作ると、まずサーバーからローカルにすべての差分を取得し、次に逆にローカルからサーバーにすべての差分を送信します。
これは、将来的に更新や新しいファイルがある場合にのみ、非常によく機能します。削除がある場合、それは何も行いません。
rsync には --delete と --delete-after オプションがあり、私が望むことを達成するのに役立ちますが、問題は、それが 2-way-sync で動作しないことです。
ローカルファイルが削除されたときに、syn上でサーバーファイルを削除したい場合、それは動作しますが、何らかの理由(後に説明)で、サーバーに存在しないがローカルに存在し、それらが削除された場合、私はローカルでそれらを削除し、サーバーにコピーされないようにしたい(それが起こるように)。
私はコンテキストで 3 台のマシンを持っています。
- デスクトップ
- ノートブック
- ホームサーバー
そのため、たとえば、ノートブックとの同期で削除されたファイルがサーバーにある場合、デスクトップとの同期を実行するときに (削除されたサーバー ファイルがまだ存在する)、これらのファイルを削除してサーバーに再びコピーされないようにしたいことがあります。
これは、データベースと操作の追跡によってのみ可能だと思います:P
もっと簡単な解決策があれば教えてください。 ありがとうございます。
どのように解決するのですか?
Unisonを試してみてください。 http://www.cis.upenn.edu/~bcpierce/unison/
構文です。
unison dirA/ dirB/
Unisonはファイルが異なる場合にどうするか聞いてきますが、デフォルトの(競合しない)オプションを受け付ける下記を使えば、処理を自動化できます。
unison -auto dirA/ dirB/
unison -batch dirA/ dirB/
は全く質問をせず、無視された (競合した) ファイルの数を出力に書き込みます。
注:私はもうUnisonを使っていません(NextCloudを使っていますが、これは元のユースケースには対応していません)。しかし、以下の点に注意してください。
rsync
は双方向の同期用に設計されていないのに対して
unison
は
unison
は、(他のソフトウェアと同じように)バグやしわ寄せがあるかもしれません。今は活発にメンテナンスされているようで驚いたが(前回見たときは死んでいるように見えたと思う)、最近はどうなんだろう。双方向のファイル同期をする必要性がないので、もっと良い選択肢があるのかもしれませんが。
関連
-
[解決済み] Rsyncのincludeオプションとexcludeオプションを使って、ディレクトリとファイルをパターン別にincludeする。
-
[解決済み] なぜテキストファイルは改行で終わらなければならないのですか?
-
[解決済み] Ansibleで空のファイルを作成するには?
-
[解決済み] Ansibleで変数をファイルに書き込む
-
[解決済み] バッチファイル ファイルを読み込むには?
-
[解決済み] scpでdirを再帰的にコピーするときにファイルをフィルタリングする方法は?
-
[解決済み] ファイルシステム・スキャンの実行方法
-
[解決済み] ディレクトリ内の全ファイルのリストを取得する(再帰的)。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン