rsync –dry-run 출력을 재사용하여 나중에 실제 전송 속도를 높입니다. 문제는 어떻게

나는 보통 rsync -n실제하기 전에한다 rsync. 문제는 어떻게 두 번째 실행을 자동화하여 생성 된 목록을 정확하게 재사용 할 수 --dry-run있습니까?

내 말은, 내가 실행하면 rsync -n무엇 rsync을 할 것인지에 대한 시뮬레이션을 얻습니다 . 제 아이디어는 그 출력을 가져 와서 처리 한 다음 어떻게 든 그 출력 rsync만 만드는 --include-from것이므로 전체 목록은 한 번만 계산해야합니다.

이해가되지 않으면 알려주세요.

그건 그렇고, 나는 사용하는 경향이 있습니다 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/


답변