rsync --recursive --ignore-existing: 부분적으로 복사된 파일을 복원/복구/덮어쓰려면 어떤 추가 플래그가 필요합니까?

rsync --recursive --ignore-existing: 부분적으로 복사된 파일을 복원/복구/덮어쓰려면 어떤 추가 플래그가 필요합니까?

rsync --recursive --ignore-existing foo bar이름이 큰 디렉토리 트리에 대해 복사 명령을 실행 중인데 foo명령이 중간에 중단되었다고 가정해 보겠습니다 . 예를 들어, 대상 시스템의 갑작스러운 정전으로 인해.

위 명령을 다시 실행하면 이미 존재하는 파일/디렉토리에 대해 많은 시간을 절약할 수 있습니다.완전히대상에 복사합니다 bar. 하지만 복사 중인 파일은 어떻게 되나요? 아마도 파일이 불완전/손상된 상태로 대상에 존재합니까? 물론 단순히 "완성된 파일"이라고 무시하는 것은 매우 바람직하지 않습니다.

rsync가 지침 없이 이(극단적인 런타임) 시나리오를 지능적으로 처리할 수 있습니까? (그렇다면 어떻게?) 아니면 더 많거나 다른 표시를 통해 그렇게 하도록 구체적으로 지시된 경우에만?

실망스럽게도 이 사이트의 매뉴얼 페이지나 모호하게 관련된 질문이나 답변 중 어느 것도 이 매우 중요한 세부 사항을 명확한 방식으로 다루지 않는 것 같습니다. (보기에 안 좋으셨다면 죄송합니다.)

답변1

-c옵션을 사용하면 날짜와 크기 대신 체크섬을 계산하고 비교하여 rsync 건너뛰기 파일을 만들 수 있습니다.

-c, --checksum

skip based on checksum, not mod-time & size

그러면 잘못된 내용이 포함된 모든 파일이 다시 복사됩니다.

--ignore-existing플래그도 제거해야 합니다. 그렇지 않으면 대상에 이미 존재하는 파일이 전송되지 않습니다.

관련 정보