2009-10-21 6 views
45

rsyncをに、を両方向に同期させたいです。RSync:両方向でどのように同期しますか?

は、私は(それはrsyncのマニュアルに意味するかない)古典的な意味 で同期を参照してください。
が、私はそれらのどれに応じて、両方向、 でディレクトリを更新する新しいされたいです。

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

+2

この次のコマンドを使用し ファイルを削除有効にした場合。 – voyager

答えて

43

「新しい」モード(-uまたは--updateフラグ)+ -t(ファイル変更時刻をコピーする)、-r(再帰フォルダ用)、および-v(冗長出力用) )、それが何をしているかを参照してください。

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

これは、削除を処理しませんが、私は唯一の定期的なsync'ingでその問題に良い解決策があるかわかりません。

+1

質問はrsyncに関するものだったので、私はこの答えを正しいとマークします。 –

+1

しかし、他のソリューションについても尋ねましたが、Unisonはより良い仕事をしてくれました。 rsyncの使用を好む特定の状況があるかもしれないと私は理解しています。 – MaD70

+1

シース、6 upvotesを取得し、あなたはまだ不満ですか? ユニゾンは本当に興味深い解決策です。あなたがそれを言及してくれてうれしいです。 :) – jsight

45

Unison File Synchronizerをご存知ですか?

UnisonはUnixおよびWindows用のファイル同期ツール です。これは、ファイルのコレクションの2つの レプリカと ディレクトリが異なる ホスト(または同じ ホスト上の異なるディスク)に保存することができ、別々に修正し、その後に各レプリカで 変更を伝播させることによって最新の状態に もう片方。 ...それは失敗に弾力性のあることも

注:

ユニゾンは、故障に強いです。 異常終了または通信障害が発生した場合でも、 のレプリカとその 自身のプライベート構造を常に賢明な 状態にしておくことが慎重です。

+0

+1。これを行うには、ユニゾンが最善の方法です。 Double-rsyncは正しく機能することは難しく、削除はまったく処理しません。 – Avdi

+0

はい、Unisonは復元力がありません。私はこれを強調するために私の答えを更新しています。 – MaD70

+2

ユニゾンについて聞いていない。あなたは今日私のバックアップスクリプトを自宅でやり直すことに責任があります。 – voyager

4

おかげで第一の同期が終わった後にこれはすぐに起こって第二の同期につながる

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

をjsight。ディレクトリ構造が巨大な場合、これはPCの前に座る必要がないので、時間を節約します。構造が巨大である場合は、冗長と進歩もの

rsync -ur dir_a dir_b && rsync -ur dir_b dir_a 
1

使用例えばrsync <OPTIONS> [hostname:]source-dir [hostname:]dest-dir

を削除:

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

異なる-もの/ XXX-ファイル.IFにXXX-ファイルを同期します異なるstuff/xxx-filesは存在しませんでした。つまり、それを作成します。つまり、コピーします。

-pogtEtv - ファイルのメタデータを保存するためのオプションのちょうど束、プラスV - あなたは大きなファイル

--bwlimit=2000をコピーする場合は超便利 - 冗長とr - 再帰

--progress - リアルタイムに同期のショーの進捗状況 - コピー/同期の最大速度を設定する(bw =帯域幅)

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

Good Luck!

-3

あなたは両方の方法で同期したいとも私はhttp://serverfault.com/にあなたがより良い答えを得るだろうと信じてい

rsync -u -r --delete dir_a dir_b 
rsync -u -r --delete dir_b dir_a 
+2

これはdir_bの新しいファイルを削除するので、 'dir_b'が新しいファイルを取得しない場合にのみこれを使用してください。しかし、その場合、2番目のコマンドの '--delete'はおそらく役に立たないでしょう。 –

関連する問題