
Sincronicé un archivo grande desde centos remotos a ubuntu local con
rsync -avzP user@<remote-ip>:/path/to/file .
Informó que la transferencia salió bien:
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
Hasta donde yo sé, rsync verifica automáticamente que la transferencia haya ido bien con comprobaciones de hash una vez completada la transferencia.
Por curiosidad, calculé hashes md5 en centos y ubuntu, y estos son diferentes:
centos: 0faa300b7b0b81bfe65199da932eb6e2
ubuntu: f3a0fcc59516d4e68fd207bdbb1fc169
Ambos hashes se calculan con md5sum
:
centos> md5sum --version
md5sum (GNU coreutils) 8.22
ubuntu> md5sum --version
md5sum (GNU coreutils) 8.25
Entonces, las versiones son un poco diferentes, pero ¿puede eso conducir a valores diferentes de los hashes?
Editar:
Aquí están ls -l
los resultados:
centos: -rw-rw-r--. 1 username username 8217194015
ubuntu: -rw-rw-r-- 1 username username 8217194015
La salida de Centos incluye un punto misterioso del que nunca había oído hablar. (¿podría estar relacionado con lvm? lvm se usa en ese centos)
Editar 2:
La verificación md5sum -b
también conduce a resultados diferentes:
centos: 0faa300b7b0b81bfe65199da932eb6e2
ubuntu: 6d799f6981066d82c7f861576b4980e1
¿Qué algoritmo hash utiliza rsync?según wikipediarsync usa md5 para verificar si el fragmento es el mismo:
El destinatario divide su copia del archivo en fragmentos y calcula dos sumas de verificación para cada fragmento: el hash MD5 y una 'suma de verificación móvil' más débil pero más fácil de calcular. Envía estas sumas de verificación al remitente. El remitente calcula rápidamente la suma de verificación continua para cada fragmento en su versión del archivo; si difieren, se debe enviar. Si son iguales, el remitente utiliza el hash MD5, más costoso computacionalmente, para verificar que los fragmentos sean iguales.
Respuesta1
Hay una suposición errónea aquí:
Hasta donde yo sé, rsync verifica automáticamente que la transferencia haya ido bien con comprobaciones de hash una vez completada la transferencia.
Rsync utiliza sumas de verificación para determinar si se necesita una sincronización. Pero Rsync no vuelve a leer la copia creada, confía en el kernel para informar errores. Entonces, la conclusión es simple: los archivos no son idénticos. Podría ser sólo un poco, podría ser más. Cuánta discrepancia hay, una suma de verificación no lo dice.
Respuesta2
El punto .
significa que el archivo tiene contexto SELinux, como todos los archivos en CentOS (y ningún archivo en Ubuntu), lo que puede confundir md5sum
de alguna manera. ¿Intentó ejecutar md5sum
con b
Switch para asegurarse de que las conversiones "a texto" no lo estropeen?