원격 Centos에서 로컬 우분투로 대용량 파일을 동기화합니다.
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과 관련이 있을까요? centos는 lvm을 사용합니다)
편집 2:
검사를 통해 md5sum -b
다른 결과가 나올 수도 있습니다.
centos: 0faa300b7b0b81bfe65199da932eb6e2
ubuntu: 6d799f6981066d82c7f861576b4980e1
rsync는 어떤 해싱 알고리즘을 사용합니까?위키피디아에 따르면rsync는 md5를 사용하여 청크가 동일한지 확인합니다.
수신자는 파일 복사본을 청크로 분할하고 각 청크에 대해 두 개의 체크섬, 즉 MD5 해시와 약하지만 계산하기 쉬운 "롤링 체크섬"을 계산합니다. 이 체크섬을 보낸 사람에게 보냅니다. 보낸 사람은 파일 버전의 각 블록에 대한 롤링 체크섬을 빠르게 계산합니다. 동일한 경우 보낸 사람은 계산 비용이 더 많이 드는 MD5 해시를 사용하여 블록이 동일한지 확인합니다.
답변1
여기에는 잘못된 가정이 있습니다.
내가 아는 한, rsync는 전송이 완료된 후 자동으로 해시를 확인하여 전송이 원활하게 진행되었는지 확인합니다.
Rsync는 체크섬을 사용하여 동기화가 필요한지 여부를 결정합니다. 그러나 Rsync는 생성된 복사본을 다시 읽지 않으며 커널이 오류를 보고한다고 신뢰합니다. 결론은 간단합니다. 이 파일들은 동일하지 않습니다. 어쩌면 조금, 어쩌면 그 이상일 수도 있습니다. 체크섬은 불일치 수를 알려줄 수 없습니다.
답변2
점은 .
파일에 CentOS의 모든 파일(Ubuntu에는 없음)처럼 SELinux 컨텍스트가 있음을 나타내므로 md5sum
다소 혼란스러울 수 있습니다. "텍스트" 변환으로 인해 손상되지 않았는지 확인하기 위해 md5sum
스위치를 사용하여 실행 해 보셨나요 ?b