私は通常、実際のrsync
を行う前にrsync -n
を行います。実は、2回目の実行を自動化して、--dry-run
で生成されたリストを正確に再利用するにはどうすればよいでしょうか。
つまり、rsync -n
を実行すると、rsync
が何をするかのシミュレーションが得られます。私の考えは、その出力を取得して処理し、何らかの形でrsync
のみを作成することです--include-from
はその出力なので、完全なリストは1回だけ計算する必要があります。
これでも意味がない場合は、お知らせください。
ちなみに、私はrsync -hva --progress --stats --delete --exclude-from "$EXCLUDEFILE"
を使用する傾向があります。どのオプションを使用するかについても提案がある場合は、お知らせください。外付けハードドライブ(画像、ビデオ、ドキュメントのみを含む)の内容を別の外付けハードドライブに複製しようとしています。
予行演習中に生成されたファイルリストをインクルードファイルとして使用することは確かに可能です。ただし、理想的には、ドライラン出力の上部と下部にある余分な行を削除する必要があります。
出力例:
sending incremental file list
[LIST OF FILES]
sent 226 bytes received 34 bytes 520.00 bytes/sec
total size is 648,373,274 speedup is 2,493,743.36 (DRY RUN)
これらの行を削除するには、rsync
出力をhead
とtail
にパイプします。次に、処理された出力をインクルードファイルに保存します。
rsync --dry-run -avz source/ destination/ | head --lines=-3 | tail --lines=+3 > include.txt
最後に、生成されたインクルードファイルを使用するようにrsync
に指示します(必要に応じてオプションを追加します)。
rsync --include-from=include.txt --exclude=* source/ dest/