나중에 실제 전송 속도를 높이려면 rsync --dry-run 출력을 재사용하세요.

나중에 실제 전송 속도를 높이려면 rsync --dry-run 출력을 재사용하세요.

나는 보통 rsync -n실제 를 수행합니다 rsync. 문제는 을 사용하여 생성된 목록을 정확히 재사용하기 위해 두 번째 실행을 어떻게 자동화합니까 --dry-run?

내 말은, 실행하면 rsync -n시뮬레이션을 얻을 수 rsync있고 그 아이디어는 해당 출력을 얻고 처리한 다음 어떻게든 해당 출력을 rsync생성하여 --include-from전체 목록을 한 번만 계산하면 된다는 것입니다.

이해가 되지 않는다면 말씀해주세요.

그런데 rsync -hva --progress --stats --delete --exclude-from "$EXCLUDEFILE"어떤 옵션을 사용할지에 대한 추가 제안 사항이 있으면 알려주시기 바랍니다. 이미지, 비디오, 문서만 포함된 외장 하드 드라이브의 콘텐츠를 다른 외장 하드 드라이브에 복사하려고 합니다.

답변1

물론, 테스트 실행 중에 생성된 파일 목록을 include 파일로 활용하는 것도 가능합니다. 그러나 이상적으로는 드라이런 출력의 상단과 하단에 있는 추가 라인을 제거해야 합니다.

출력 예:

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/

관련 정보