100

rsync を使用して、2 つのディレクトリを双方向で同期したいと考えています。

私は古典的な意味で同期を参照します ( rsync マニュアルでの意味ではありません): どちらが新しいかに応じて、ディレクトリを双方向
に更新したいと思います。

これはrsyncで実行できますか(Linuxの方法で望ましい)
そうでない場合、他にどのような解決策がありますか?

4

8 に答える 8

94

「新しい」モード(-uまたは--updateフラグ)に加えて、-t(ファイルの変更時刻をコピーする)、-r(再帰フォルダーの場合)、および-v(詳細な出力を表示して内容を確認する)を使用して、2回実行するだけですしている):

rsync -rtuv /path/to/dir_a/* /path/to/dir_b
rsync -rtuv /path/to/dir_b/* /path/to/dir_a

これは削除を処理しませんが、定期的な同期だけでその問題を解決できるかどうかはわかりません。

于 2009-10-21T17:31:57.830 に答える
68

Unison File Synchronizerをご存知ですか?

Unison は、Unix および Windows 用のファイル同期ツールです。これにより、ファイルとディレクトリのコレクションの 2 つのレプリカを異なるホスト (または同じホスト上の異なるディスク) に格納し、個別に変更してから、各レプリカの変更を他のレプリカに伝達することで最新の状態にすることができます。...

また、障害に対して回復力があることにも注意してください。

Unison は失敗に強いです。異常終了や通信障害が発生した場合でも、レプリカとそれ自体のプライベート構造を常に適切な状態のままにしておくように注意してください。

于 2009-10-21T17:35:11.257 に答える
6

ありがとう

rsync -urv --progress dir_a dir_b && rsync -urv  --progress dir_b dir_a

これにより、最初の同期が終了した直後に 2 番目の同期が行われます。ディレクトリ構造が巨大な場合、PC の前に座る必要がないため、時間を節約できます。構造が巨大な場合は、詳細を削除して進行状況を確認します

rsync -ur dir_a dir_b && rsync -ur dir_b dir_a
于 2013-01-18T21:07:32.753 に答える
1

使用するrsync <OPTIONS> [hostname:]source-dir [hostname:]dest-dir

例えば:

rsync -pogtEtvr --progress --bwlimit=2000 xxx-files different-stuff

xxx-files を different-stuff/xxx-files に同期します。different-stuff/xxx-files が存在しない場合は、それを作成します。つまり、コピーします。

-pogtEtv- ファイルのメタデータを保持するための一連のオプションに加えて、v - verbose および r - 再帰的

--progress- 同期の進行状況をリアルタイムで表示 - 大きなファイルをコピーする場合に非常に便利

--bwlimit=2000 - コピー/同期の最大速度を設定します (bw = 帯域幅)

PS rsync は、ネットワーク経由で作業する場合に非常に重要です。ローカル マシンの場合、cpなどのコマンドを使用できます。

幸運を!

于 2013-03-15T23:27:45.557 に答える