centos와 ubuntu에서 대용량 rsync 파일의 해시 값이 다른가요?

centos와 ubuntu에서 대용량 rsync 파일의 해시 값이 다른가요?

원격 Centos에서 로컬 우분투로 대용량 파일을 rsync했습니다.

rsync -avzP user@<remote-ip>:/path/to/file .

전송이 잘 진행되었다고 보고되었습니다.

sent 30 bytes  received 257,293,476 bytes  1,296,188.95 bytes/sec
total size is 8,217,194,015  speedup is 31.94

내가 아는 한 rsync는 전송이 완료된 후 해시 확인을 통해 전송이 잘 되었는지 자동으로 확인합니다.

호기심 때문에 centos와 ubuntu에서 md5 해시를 계산했는데, 이것들은 다릅니다:

centos: 0faa300b7b0b81bfe65199da932eb6e2
ubuntu: f3a0fcc59516d4e68fd207bdbb1fc169

두 해시 모두 다음을 사용하여 계산됩니다 md5sum.

centos> md5sum --version
md5sum (GNU coreutils) 8.22

ubuntu> md5sum --version
md5sum (GNU coreutils) 8.25

따라서 버전은 약간 다르지만 이로 인해 해시 값이 달라질 수 있습니까?

편집하다:

출력 은 다음과 같습니다 ls -l.

centos: -rw-rw-r--.  1 username username 8217194015
ubuntu: -rw-rw-r--   1 username username 8217194015

Centos 출력에는 들어본 적이 없는 신비한 점이 포함되어 있습니다. (lvm과 관련이 있을 수 있나요? lvm은 해당 centos에서 사용됩니다)

편집 2:

확인하면 md5sum -b다른 결과도 발생합니다.

centos: 0faa300b7b0b81bfe65199da932eb6e2
ubuntu: 6d799f6981066d82c7f861576b4980e1

rsync는 어떤 해시 알고리즘을 사용합니까?위키피디아에 따르면rsync는 md5를 사용하여 청크가 동일한지 확인합니다.

수신자는 파일 복사본을 청크로 분할하고 각 청크에 대해 두 개의 체크섬, 즉 MD5 해시와 더 약하지만 계산하기 쉬운 '롤링 체크섬'을 계산합니다. 이 체크섬을 보낸 사람에게 보냅니다. 보낸 사람은 파일 버전의 각 청크에 대한 롤링 체크섬을 빠르게 계산합니다. 다르면 보내야 합니다. 동일한 경우 발신자는 계산 비용이 더 많이 드는 MD5 해시를 사용하여 청크가 동일한지 확인합니다.

답변1

여기에는 잘못된 가정이 있습니다.

내가 아는 한 rsync는 전송이 완료된 후 해시 확인을 통해 전송이 잘 되었는지 자동으로 확인합니다.

Rsync는 체크섬을 사용하여 동기화가 필요한지 결정합니다. 그러나 Rsync는 생성된 복사본을 다시 읽지 않으며 커널이 오류를 보고한다고 신뢰합니다. 따라서 결론은 간단합니다. 파일이 동일하지 않습니다. 단지 한 조각일 수도 있고 그 이상일 수도 있습니다. 얼마나 많은 불일치가 있는지, 체크섬으로는 알 수 없습니다.

답변2

점은 .CentOS의 모든 파일(Ubuntu의 파일 없음)과 마찬가지로 파일에 SELinux 컨텍스트가 있음을 의미하므로 md5sum어떤 방식으로든 혼동될 수 있습니다. "텍스트로" 변환으로 인해 문제가 발생하지 않도록 스위치를 md5sum사용하여 실행하려고 했습니까 ?b

관련 정보