rsync
나는 옵션 --checksum
과 호출을 사용했습니다 --append-verify
.
이 옵션 조합을 처리하는 방법에 대해 제가 이해한 바에 따르면 애플리케이션은 다음과 같이 실행됩니다.
파일이 원본에만 존재하는 경우 대상에 복사하여 전송됩니다.
원본과 대상 모두에 존재하는 경우 양쪽의 체크섬을 증분적으로 확인합니다.
체크섬 계산이 분기되는 지점(콘텐츠 불일치를 나타냄) 또는 한 파일이 다른 파일보다 먼저 끝나는 지점에서 대상의 나머지 콘텐츠가 소스에서 업데이트됩니다.
이러한 의미에서 나머지 콘텐츠를 업데이트하려면 대상을 자르고 덮어쓰고 추가해야 할 수도 있습니다.
--append
이 동작은 대상 파일이 소스 파일보다 짧은 경우에만 추가되도록 하여 발생하는 동작과 대조됩니다 .
--checksum
두 파일 트리가 동일하다는 것을 보장하기 위한 의도된 방법으로 옵션 --append-verify
및 --verbose
(일반적으로 적절한 경우) 조합을 사용하여 지난 몇 년 동안 수많은 데이터 세트로 작업한 후 이제 그러한 매개변수 조합을 사용하는 것이 동작이 아니라는 --recurse
것을 알게 되었습니다. rsync
나는 무엇을 기대합니다.
rsync
이상하게도 양쪽에 있는 모든 파일에 대한 체크섬을 계산하기 위해 줄 양쪽에서 계산을 수행함에도 불구하고 두 파일의 길이가 동일한 한 불일치는 무시되는 것 같습니다.
--append-verify
이 옵션의 실제 동작과 목적 (포함 여부에 관계 없음) 은 무엇 --checksum
이며, 의도한 대로 식별한 동작을 달성하려면 어떻게 해야 합니까?
마지막으로, 강하게 반대하지 않고 좀 더 주관적인 질문을 할 수 있다면, 제가 설명하는 실제 행동이 예상치 못한 것일 뿐만 아니라 위험하다고 생각하는 사람은 저뿐인가요?*
답변1
간단히 말해서:
--checksum
rsync
두 파일이 동일한지 확인하는 방법입니다.--append
--append-verify
소스 파일이 대상 파일보다 큰 경우 에만 유용합니다. 차이점은 전송이 완료된 후 체크섬 계산에만 있습니다(위 옵션과 관련 없음). 전자는 전체 파일의 체크섬을 계산하고, 후자는 추가된 부분의 체크섬만 계산합니다. "이전" 부분의 내용이 변경된 파일을 사용하는 경우--append
, 제가 아는 한 오류가 발생합니다.
요즘에는 추가로 합리적인 사용 사례를 찾지 못했습니다. 유일한 사례는 로그 파일이 계속 커지는 경우입니다. 로그 파일 회전의 경우 이것은 어쨌든 의미가 없습니다.