web-dev-qa-db-ja.com

RSync:双方向に同期するにはどうすればよいですか?

Rsyncを使用してsynchronize双方向の2つのディレクトリにしたい。

私は古典的な意味で同期を参照します(not rsyncマニュアルでの意味):
ディレクトリを更新します双方向、どちらがnewerかによって異なります。

これは、rsync(Linuxウェイで推奨)で実行できますか?
そうでない場合、他にどのようなソリューションが存在しますか?

60

「新しい」モード(-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

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

60
jsight

nison File Synchronizer 知っていますか?

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

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

Unisonは障害に対して回復力があります。異常終了または通信障害が発生した場合でも、レプリカとその独自のプライベート構造を常に適切な状態に保つように注意してください。

54
MaD70

ありがとうjsight

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

これにより、1回目の同期が終了した直後に2回目の同期が行われます。ディレクトリ構造が巨大な場合、PCの前に座る必要がないので、これは時間を節約します。構造が巨大な場合は、冗長および進行状況を削除します

rsync -ur dir_a dir_b && rsync -ur dir_b dir_a
6
Mayank Agarwal

つかいます 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-詳細およびr-再帰的

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

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

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

がんばろう!

1
Bohdan

rsyncinotifywaitを使用しています。ファイルを変更すると、rsyncが実行されます。

inotifywait -m --exclude "$_LOG_FILE" -r -e create,delete,delete_self,modify,moved_to --format "%w%f" "$folder"

両方のホストでinotifywaitを実行する必要があります。例を確認してください inotifywait

0
iadd

必要なのは Rclone です。 Rclone(「クラウドストレージのrsync」)は、さまざまなクラウドストレージプロバイダー(ボックス、ドロップボックス、ftpなど)とローカルファイルシステムとの間でファイルやディレクトリを同期するコマンドラインLinuxプログラムです。 Rloneはミラー同期のみをサポートします。

リアルタイム同期を含むもう1つのグラフィカルなソリューションは、RealTimeSyncプログラムを含む FreeFileSync を使用することです。 FreefileSyncは、削除の処理を含む双方向の双方向同期をサポートします。

FreFileSync gui

0
user1461607