Normalmente, rsync
omite archivos cuando los archivos tienen tamaños y tiempos idénticos en los lados de origen y destino. Esta es una heurística que generalmente es una buena idea, ya que evita rsync
tener que examinar el contenido de los archivos que probablemente sean idénticos en los lados de origen y destino.
--ignore-times
le indica rsync
que desactive la heurística de tiempos y tamaños de archivo y, por lo tanto, transfiera incondicionalmente TODOS los archivos del origen al destino. rsync
luego procederá a leer cada archivo en el lado de origen, ya que necesitará usar su algoritmo de transferencia delta, o simplemente enviar cada archivo en su totalidad, dependiendo de si --whole-file
se especificó la opción.
--checksum
también modifica la heurística de tiempos y tamaños de archivo, pero aquí ignora los tiempos y examina solo los tamaños. Los archivos en los lados de origen y destino que difieren en tamaño se transfieren, ya que obviamente son diferentes. Los archivos con el mismo tamaño tienen una suma de verificación (con MD5 en la rsync
versión 3.0.0+, o con MD4 en versiones anteriores), y los que tienen sumas diferentes también se transfieren.
En los casos en que los lados de origen y destino son en su mayoría iguales, la --checksum
mayoría de los archivos se sumará a ambos lados. Esto podría llevar mucho tiempo, pero el resultado es que el mínimo mínimo de datos se transferirá realmente a través del cable, especialmente si se utiliza el algoritmo de transferencia delta. Por supuesto, esto es solo una victoria si tiene redes muy lentas y / o CPU muy rápida.
--ignore-times
, por otro lado, enviará más datos a través de la red y hará que se lean todos los archivos de origen, pero al menos no impondrá la carga adicional de calcular muchos hashsums criptográficamente fuertes en las CPU de origen y destino. Esperaría que esta opción funcione mejor que --checksum
cuando sus redes son rápidas y / o su CPU relativamente lenta.
Creo que solo lo usaría --checksum
o --ignore-times
si estuviera transfiriendo archivos a un destino donde se sospechaba que el contenido de algunos archivos estaba dañado, pero cuyos tiempos de modificación no cambiaron. Realmente no puedo pensar en ninguna otra buena razón para usar cualquiera de las opciones, aunque probablemente haya otros casos de uso.
--checksum
útil junto con--itemize-changes
para verificar las copias de seguridad. De vez en cuando, mis scripts de respaldo ejecutan una comparación completa de esta manera después de que se completan las actualizaciones diarias / semanales actuales. Recibo un correo electrónico marcado como urgente si--itemize-changes
muestra algo inesperado, así que sé que hay un problema potencial que debería investigar.