Rsyncを使用すると、両方の方法でファイルを同期できますか?


25

rsyncとcygwinを使用して、Linux Webサーバーをバックアップしました。Windowsラップトップにサーバーの完全なコピーができました。ラップトップ上のファイルを削除または変更し、cygwinでrsyncを再度実行すると、サーバー上の同じファイルが削除/更新されますか?サーバーで削除/変更し、ラップトップでrsyncを実行すると、ラップトップのローカルファイルが削除/変更されますが、これは逆に機能するという印象を受けますか?


12
これはあなたの質問に対する答えではありませんが、をご覧くださいunison。これは、両方のコピーのファイル状態を保存する同期ツールであり、双方向の同期を可能にします。cygwinパッケージもあります。
ドゥブ14

回答:


29

Rsyncは一方向の同期を行いますが、同期の方向を決定するのはユーザー次第です。

Rsyncコマンドの構文は次のとおりです。

rsync [OPTION...] SRC... [DEST]

ソースから宛先への同期を指定することに注意してください。送信元と宛先には、任意のローカルパスまたはリモートパスを指定できます。

たとえば、サーバーからラップトップにファイルをコピーする場合は、次のようにします。

rsync [OPTION...] <server-path> <laptop-path>

反対方向に同期するには:

rsync [OPTION...] <laptop-path> <server-path>

あなたの質問に答えるために:それはあなたがrsyncを実行する方法に依存します。

宛先でファイルを削除する場合は、--deleteオプションを使用する必要があります。ただし、ソースを指定するときに間違えた場合は、宛先のすべてが削除されるため、注意してください。--delete最初にオプションなしで同期をテストする方が安全であり、動作に満足したら--deleteオプションを追加できます。

以下のコメントでmasegaloehが示唆したように、-nまたは--dry-runオプションを使用してrsyncコマンドの動作をテストすることもできます。


9
追加の注記:rsyncの動作をテストするために、このパラメータを使用することができます-n--dry-runあなたは、ファイルが削除され、修正される知っているので、
masegaloeh

1

python3で記述されたラッパーツールは、タスクbsyncをラップfindしてrsyncコマンドを簡素化します。Githubリポジトリ:https : //github.com/dooblem/bsync

github上にある場合(ツールを使用するにはプログラマーである必要があると思われる方法で)怖がらないでください。


-1

--deleteではなく--delete-afterの使用を検討してください。これにより、受信側は転送前ではなく転送後にファイルを削除します。


私は、OPがrsync何も削除しようとしていないため、ダウン投票が行われていると考えています。彼は自分で物を削除しています。そうは言っても、一般的なrsync'ingの役立つヒントです。ありがとう。
ハーパービル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.