rsyncで--deleteオプションを使用する

rsyncで--deleteオプションを使用する

rsyncスクリプトでは、次のコマンドを使用してソースからターゲットにファイルをコピーします。

rsync -av --exclude 'share/web/sessions/' --rsync-path "sudo rsync" /sdata/ 172.31.X.X:/sdata/ &>/home/fsync/rsyncjob/output

要件に応じて特定の日数が経過すると、一部のファイルを削除するクリーンアップスクリプトがソースホストにあります。ファイルがソースホストから削除された場合は、ターゲットrsync ホストからも削除する必要があります。

rsyncこれを行うには、ソースホストからファイルを削除した後、ターゲットホストからファイルを削除するオプションが表示されます--delete-before--delete-afterしかし、マニュアルページに示すように、私はこれらのオプションの使用について懐疑的です。This option can be dangerous if used incorrectly! It is a very good idea to first try a run using the --dry-run option (-n) to see what files are going to be deleted.

私の更新されたコマンドは次のとおりです。

rsync -av --exclude 'share/web/sessions/' --delete-after --rsync-path "sudo rsync" /sdata/ 172.31.X.X:/sdata/ &>/home/fsync/rsyncjob/outpu

このオプションは正しいですか?これらは私たちの本番ホストであり、これらのオプションを使用する前に確認したいと思います。専門家に助言を求めてください。

ベストアンサー1

--delete-afterrsyncがファイルリストを再検索するように強制するため、使用しません。今日の最高のオプションは使用することです--delete-during(または--del単に)。 I / Oエラーの問題が原因で「削除後」の効果を維持するには--delete-delay

参照はマニュアルページを参照してください。

一部のオプションでは、ファイル全体のリストを知るために rsync が必要なため、これらのオプションは増分再帰モードを無効にします。これには、--delete-before、--delete-after、--prune-empty-dirs、および--delay-updatesが含まれます。したがって、接続の終了が3.0.0以上の場合、--deleteが指定されている場合、デフォルトの削除モードは--delete-duringです(この拡張削除モードを要求するには、--delまたは--delete-duringを明示的に使用します)。 。 --delete-after を使用するよりも優れた代替手段である --delete-delay オプションも参照してください。

もちろん、各方法に関連するセクションがあります。

おすすめ記事