rsync --delete の中心的な機能は、ターゲット ディレクトリ内の「ソース ディレクトリが存在しない」ファイルを削除して、ターゲット側とソース側の一貫性を保つことです。
一般に、次のシナリオで使用されます。
- 同期中にターゲット側の過去の冗長ファイルをクリーンアップする
- 空のディレクトリを使用してターゲット ディレクトリをすばやくクリアします
基本的な文法
|
|
-a: アーカイブ モード、権限やタイムスタンプなどの属性を保持します。--delete: ターゲット上の余分なファイルを削除します
重要な注意事項: 源目录 の最後に / があるかどうかは、同期動作に影響します。 / を使用すると、ディレクトリの内容を同期することを意味し、/ を使用しない場合は、ディレクトリ自体を同期することを意味します。
ターゲットディレクトリを空のディレクトリですばやくクリアします
「ディレクトリ構造は保持するが、中身は空にする」ことが目標の場合は、空のディレクトリをソースとして同期できます。
|
|
通常、この方法は、大規模なディレクトリのシナリオで 1 つずつ削除するよりも効率的であり、自動スクリプトの作成も簡単です。
よく使用される拡張パラメータ
--delete-before: 最初に削除してから送信します。これは、シナリオによってはより効率的です。--progress: 送信と処理の進行状況を表示
例 (クリーンな Nginx ログ ディレクトリ):
|
|
使用方法の提案
--dry-runでプレビューし、削除範囲を確認してから実行します- 本番環境で使用する前に、対象ディレクトリのバックアップを作成することをお勧めします。
- クリティカル パスを実行する場合は、オフピーク時間帯の操作を優先する