1TB 외부 저장 장치가 2개 있는데 모두 서버에 백업하고 싶습니다. 이 작업을 수행하기 위해 rsync를 사용하고 싶었지만 각 장치에 있는 약 100,000개의 파일 중에서 약 80,000개의 파일이 동일하다는 것을 발견했습니다(동일한 이름과 디렉터리 경로를 가짐). 두 파일을 개별적으로 rsync할 수 있으며 그러면 파일이 병합되지만 수정된 파일이 수정된 경우 수정된 파일을 잃고 싶지 않기 때문에 "상호" 파일에 동일한 콘텐츠가 포함되어 있는지 확인하는 방법이 필요합니다. rsync를 사용하여 이를 확인할 수 있는 방법이 있습니까?
답변1
파일의 체크섬을 확인하려면 rsync의 "-c" 플래그를 사용하는 것이 좋습니다. 모드 시간과 크기가 동일한 경우. 그런 다음 체크섬을 수행하여 파일의 내용이 동일한지 확인합니다. 자세한 내용은 여기에서 확인하세요 ==>https://serverfault.com/questions/211005/rsync-difference-Between-checksum-and-ignore-times-options
답변2
이후 로컬 시스템에서 변경된 원격 시스템의 업데이트되거나 수정된 파일만 동기화하려면 다음과 같이 파일을 복사하기 전에 연습 실행을 수행할 수 있습니다.
rsync -av --dry-run --update Documents/* [email protected]:/<directory>
결과가 괜찮다면 이것을 사용하십시오
rsync -av --update Documents/* [email protected]:/<directory>
자세한 내용은 다음을 참조하세요.http://www.tecmint.com/sync-new-changed-modified-files-rsync-linux/
답변3
두 가지 운송 모두에 대해 다음을 사용할 수 있습니다.
rsync --ignore-existing -i dir1/ [email protected]:/dir2/
첫 번째 전송의 경우 모든 파일을 전송하고 나열합니다.
두 번째 전송에서는 이미 존재하는 파일을 무시하고( --ignore-existing
) 실제로 복사한 모든 파일을 나열합니다( -i
). 그런 다음 모든 파일 목록 가져오기 를 사용하여 전송에서 누락된 파일을 복사하도록 선택하고 find
전송 2의 출력에 나열된 파일을 제거할 수 있습니다.
불행하게도 파일이 이미 존재하는 경우 약간 다른 파일 이름으로 복사할 수 없으므로 추가 논리와 루프가 필요합니다.