나는 보통 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/