rsync는 --append-verify 옵션을 사용하여 변경된 파일을 감지하지 않습니다.

rsync는 --append-verify 옵션을 사용하여 변경된 파일을 감지하지 않습니다.

rsync나는 옵션 --checksum과 호출을 사용했습니다 --append-verify.

이 옵션 조합을 처리하는 방법에 대해 제가 이해한 바에 따르면 애플리케이션은 다음과 같이 실행됩니다.

  • 파일이 원본에만 존재하는 경우 대상에 복사하여 전송됩니다.

  • 원본과 대상 모두에 존재하는 경우 양쪽의 체크섬을 증분적으로 확인합니다.

  • 체크섬 계산이 분기되는 지점(콘텐츠 불일치를 나타냄) 또는 한 파일이 다른 파일보다 먼저 끝나는 지점에서 대상의 나머지 콘텐츠가 소스에서 업데이트됩니다.

    이러한 의미에서 나머지 콘텐츠를 업데이트하려면 대상을 자르고 덮어쓰고 추가해야 할 수도 있습니다.

    --append이 동작은 대상 파일이 소스 파일보다 짧은 경우에만 추가되도록 하여 발생하는 동작과 대조됩니다 .

--checksum두 파일 트리가 동일하다는 것을 보장하기 위한 의도된 방법으로 옵션 --append-verify--verbose(일반적으로 적절한 경우) 조합을 사용하여 지난 몇 년 동안 수많은 데이터 세트로 작업한 후 이제 그러한 매개변수 조합을 사용하는 것이 동작이 아니라는 --recurse것을 알게 되었습니다. rsync나는 무엇을 기대합니다.

rsync이상하게도 양쪽에 있는 모든 파일에 대한 체크섬을 계산하기 위해 줄 양쪽에서 계산을 수행함에도 불구하고 두 파일의 길이가 동일한 한 불일치는 무시되는 것 같습니다.

--append-verify이 옵션의 실제 동작과 목적 (포함 여부에 관계 없음) 은 무엇 --checksum이며, 의도한 대로 식별한 동작을 달성하려면 어떻게 해야 합니까?

마지막으로, 강하게 반대하지 않고 좀 더 주관적인 질문을 할 수 있다면, 제가 설명하는 실제 행동이 예상치 못한 것일 뿐만 아니라 위험하다고 생각하는 사람은 저뿐인가요?*

답변1

간단히 말해서:

  1. --checksumrsync두 파일이 동일한지 확인하는 방법입니다.

  2. --append--append-verify소스 파일이 대상 파일보다 큰 경우 에만 유용합니다. 차이점은 전송이 완료된 후 체크섬 계산에만 있습니다(위 옵션과 관련 없음). 전자는 전체 파일의 체크섬을 계산하고, 후자는 추가된 부분의 체크섬만 계산합니다. "이전" 부분의 내용이 변경된 파일을 사용하는 경우 --append, 제가 아는 한 오류가 발생합니다.

요즘에는 추가로 합리적인 사용 사례를 찾지 못했습니다. 유일한 사례는 로그 파일이 계속 커지는 경우입니다. 로그 파일 회전의 경우 이것은 어쨌든 의미가 없습니다.

관련 정보