web-dev-qa-db-ja.com

Rsyncではファイルを双方向で同期できますか?

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

25
Dan Hastings

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コマンドの動作をテストすることもできます。

29
grekasius

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

それがgithub上にあるとき(つまり、ツールを使用するにはプログラマーでなければならないと思う方法で)怖がらないでください。

1
biocyberman