後で実際の転送速度を上げるには、rsync --dry-run出力を再利用してください。

後で実際の転送速度を上げるには、rsync --dry-run出力を再利用してください。

私は通常rsync -n実際に行いますrsync。問題は、を使用して生成されたリストを正確に再利用するために2番目の実行をどのように自動化するのですか--dry-run

つまり、実行するとrsync -nシミュレーションが得られ、rsyncそのアイデアはその出力を取得して処理し、何らかの方法でその出力をrsync生成して--include-fromリスト全体を一度だけ計算することです。

わからない場合は教えてください。

しかし、rsync -hva --progress --stats --delete --exclude-from "$EXCLUDEFILE"どのオプションを使用するかに関する追加の提案がある場合は、お知らせください。画像、ビデオ、文書のみを含む外付けハードドライブのコンテンツを別の外付けハードドライブにコピーしようとしています。

答え1

もちろん、テスト実行中に生成されたファイルのリストをインクルードファイルとして利用することも可能です。ただし、理想的にはドライラン出力の上部と下部にある追加のラインを削除する必要があります。

出力例:

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/

関連情報