rsync는 나에게 매우 명확하지만 아직 파악할 수 없는 특정 작업이 있습니다.
소스와 타겟을 1:1로 동기화하고 싶습니다. 나는 이 --delete
옵션이 그것을 다룰 것이라고 믿습니다 . 따라서 소스에 파일을 추가하면 rsync가 해당 파일을 대상에 추가합니다. 소스에서 파일이 삭제되면 rsync는 대상에서도 해당 파일을 삭제합니다. 이제 대상 파일을 삭제하는 대신 Archive 폴더로 이동하고 싶습니다.
소스에서 누락된 파일 목록을 rsync에 요청할 수 있습니까? 그러면 목록의 항목을 대상에서 보관함으로 이동할 수 있나요?
작동하는 솔루션이 있지만 파일 전송과 관련이 있고 rsync 버전에 따라 다를 수 있는 rsync 콘솔 출력에 의존하기 때문에 불안정합니다.
rsync -avun --delete src/ tgt/ |grep "deleting" | cut -c10- > transfer.txt
rsync --files-from=transfer.txt --remove-source-files tgt/ archive/
rm transfer.txt
rsync -ravu --delete src/ tgt/
보다 안정적인 방법으로 이 작업을 수행하는 방법에 대한 아이디어가 있습니까?
답변1
이 --backup --backup-dir=/some/backup/directory
옵션은 대상에서 변경되거나 삭제된 파일을 백업합니다.
rsync -auv --delete --backup --backup-dir=/path/to/backupdir src/ tgt/
경로는 --backup-dir
대상을 기준으로 하므로 내부에 배치하지 않으려면 tgt/
절대 경로를 제공하는 것이 좋습니다.
답변2
옵션옵션이 있습니다 --list-only
.