Eu criei um arquivo grande de centos remotos para o ubuntu local com
rsync -avzP user@<remote-ip>:/path/to/file .
Informou que a transferência correu bem:
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
Até onde eu sei, o rsync verifica automaticamente se a transferência correu bem com as verificações de hash após a conclusão da transferência.
Por curiosidade eu calculei hashes md5 no centos e no Ubuntu, e estes são diferentes:
centos: 0faa300b7b0b81bfe65199da932eb6e2
ubuntu: f3a0fcc59516d4e68fd207bdbb1fc169
Ambos os hashes são calculados com md5sum
:
centos> md5sum --version
md5sum (GNU coreutils) 8.22
ubuntu> md5sum --version
md5sum (GNU coreutils) 8.25
Assim, as verificações são um pouco diferentes, mas isso pode levar a valores diferentes dos hashes?
Editar :
Aqui estão ls -l
output:
centos: -rw-rw-r--. 1 username username 8217194015
ubuntu: -rw-rw-r-- 1 username username 8217194015
A saída do Centos inclui um ponto misterioso que eu nunca ouvi falar. (poderia estar relacionado com lvm? lvm é usado nesses centos)
Editar 2 :
A verificação de md5sum -b
leva também a resultados diferentes:
centos: 0faa300b7b0b81bfe65199da932eb6e2
ubuntu: 6d799f6981066d82c7f861576b4980e1
Qual algoritmo de hash o rsync usa? De acordo com a wikipedia , o rsync usa o md5 para verificar se o fragmento é o mesmo:
The recipient splits its copy of the file into chunks and computes two checksums for each chunk: the MD5 hash, and a weaker but easier to compute 'rolling checksum'. It sends these checksums to the sender. The sender quickly computes the rolling checksum for each chunk in its version of the file; if they differ, it must be sent. If they're the same, the sender uses the more computationally expensive MD5 hash to verify the chunks are the same.