
Eu sincronizei novamente um arquivo grande do centos remoto para o ubuntu local com
rsync -avzP user@<remote-ip>:/path/to/file .
Ele relatou 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
Pelo que eu sei, o rsync verifica automaticamente se a transferência ocorreu bem com verificações de hash após a conclusão da transferência.
Por curiosidade 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
Portanto, as versões são um pouco diferentes, mas isso pode levar a valores diferentes dos hashes?
Editar:
Aqui estão ls -l
os resultados:
centos: -rw-rw-r--. 1 username username 8217194015
ubuntu: -rw-rw-r-- 1 username username 8217194015
A saída do Centos inclui pontos misteriosos dos quais nunca ouvi falar. (poderia estar relacionado ao lvm? lvm é usado naquele centos)
Editar 2:
A verificação md5sum -b
também leva a resultados diferentes:
centos: 0faa300b7b0b81bfe65199da932eb6e2
ubuntu: 6d799f6981066d82c7f861576b4980e1
Qual algoritmo de hash o rsync usa?De acordo com a Wikipédiarsync usa md5 para verificar se o pedaço é o mesmo:
O destinatário divide sua cópia do arquivo em partes e calcula duas somas de verificação para cada parte: o hash MD5 e uma 'soma de verificação contínua' mais fraca, mas mais fácil de calcular. Ele envia essas somas de verificação ao remetente. O remetente calcula rapidamente a soma de verificação contínua para cada parte em sua versão do arquivo; se forem diferentes, deverá ser enviado. Se forem iguais, o remetente usa o hash MD5 mais caro em termos computacionais para verificar se os pedaços são iguais.
Responder1
Há uma suposição errada aqui:
Pelo que eu sei, o rsync verifica automaticamente se a transferência ocorreu bem com verificações de hash após a conclusão da transferência.
O Rsync usa somas de verificação para determinar se uma sincronização é necessária. Porém, o Rsync não relê a cópia criada, ele confia no kernel para relatar erros. Portanto, a conclusão é simples: os arquivos não são idênticos. Pode ser só um pouco, pode ser mais. Quanta incompatibilidade existe, uma soma de verificação não informa.
Responder2
O ponto .
significa que o arquivo tem contexto SELinux, como todo arquivo no CentOS (e nenhum arquivo no Ubuntu), o que pode confundir md5sum
de alguma forma. Você tentou executar md5sum
o b
switch para ter certeza de que ele não seria prejudicado pelas conversões "para texto"?