113 votos

Rsync diferencia--opciones de suma de comprobación y--ignorar-veces

¿Alguien puede aclarar las diferencias entre el --checksum y --ignore-times opciones de rsync?

Mi entendimiento es como sigue:

--checksum
Si el tamaño del archivo y el tiempo de partido, se va a hacer una suma de comprobación en ambos extremos para ver si los archivos son realmente idénticos.

--ignore-times
'Transferencia' todos los archivos, independientemente de si el archivo de tiempo es la misma en ambos extremos. Ya que se usará el delta-algoritmo de la transferencia, si un archivo es idéntico, nada se transfiere.

Esa es la diferencia técnica, pero como lo que yo puedo decir, que son en esencia la misma cosa.

Así, lo que me pregunto es:

  • ¿Cuál es la diferencia práctica entre las dos opciones?
  • ¿En qué casos se debe utilizar el uno en vez de otro?
  • ¿Hay alguna diferencia de rendimiento entre ellos?

122voto

Priyan R Puntos 687

Normalmente, rsync salta archivos cuando los archivos tienen los mismos tamaños y tiempos en el origen y destino de los lados. Esta es una heurística que es generalmente una buena idea, ya que previene rsync de tener que examinar el contenido de los archivos que muy probablemente idéntica a la de origen y de destino lados.

--ignore-times dice rsync a desactivar el archivo de veces y tamaños heurística, y por lo tanto incondicionalmente transferir TODOS los archivos desde el origen al destino. rsync luego proceder a leer todos los archivos en el lado de la fuente, ya que tendrá que usar su delta-algoritmo de la transferencia, o simplemente enviar cada archivo en su totalidad, dependiendo de si el --whole-file opción fue especificado.

--checksum también modifica el archivo veces y tamaños heurística, pero aquí se ignora veces y examina sólo los tamaños. Los archivos del origen y destino de los lados que difieren en tamaño se transfieren, ya que, obviamente, son diferentes. Los archivos con el mismo tamaño checksummed (MD5 (en rsync versión 3.0.0+, o con MD4 en versiones anteriores), y aquellos que tienen diferentes sumas de dinero se transfiere también.

En los casos donde el origen y el destino de los lados son casi lo mismo, --checksum en la mayoría de los archivos que se están checksummed en ambos lados. Esto puede tomar mucho tiempo, pero el resultado es que el más mínimo de los datos en realidad serán transferidos a través de la red, especialmente si el delta de transferencia se utiliza el algoritmo. Por supuesto, esto es sólo una victoria si usted tiene muy lenta redes, y/o CPU muy rápido.

--ignore-times, por otro lado, va a enviar más datos a través de la red, y esto hará que todos los archivos de origen para ser leído, pero al menos no va a imponer la carga adicional de la informática, muchos de criptografía fuerte hashsums en el origen y destino de la Cpu. Yo esperaría esta opción para realizar mejor que --checksum cuando las redes son rápidos, y/o la CPU relativamente lento.

Creo que sólo se usará --checksum o --ignore-times si yo fuera la transferencia de archivos a un destino donde se sospechaba que el contenido de algunos archivos estaban dañados, pero cuya modificación no se han cambiado. Realmente no puedo pensar en ninguna otra razón para utilizar cualquiera de las opciones, aunque probablemente hay otros casos de uso.

20voto

Paulus Puntos 21

suma de control también es útil si usted ha estado utilizando otro sistema para sincronizar archivos, que no ha conservado las marcas de tiempo. Suma de verificación será sólo tranfer archivos diferentes y actualización todas las marcas de hora en el extremo receptor de forma que coinciden

6voto

Francois Puntos 21

Un detalle: la opción checksum comprueba un archivo completo de uno de los extremos, entonces el archivo entero en el otro extremo. Si sus archivos son algo grandes, este tipo de mata paralelismo.

También, si tienes archivos de grandes tamaño, es más probable encontrarme con un tiempo de espera con --checksum , como no con -I .

4voto

LeoB Puntos 111

De info rsync en lo que respecta a la --checksum opción - "Ya que este conjunto-archivo sumas de todos los archivos en ambos lados de la conexión se produce además a las verificaciones de suma de comprobación automática que ocurren durante la transferencia de un archivo, esta opción puede ser muy lenta".

3voto

Aleksandr Levchuk Puntos 1713

El --ignore-times opción, el resultado probablemente será en todos los archivos delta codificado y el delta-algoritmo de la transferencia (delta encoding) es al menos tan lento como la suma de comprobación.

No sé si rsync --ignore-times es lo suficientemente inteligente como para evitar el "automático después de la transferencia de verificación" en el frecuente caso cuando el delta de transferencia resultará en nada de lo que están siendo transferidos.

Para --ignore-times:

  • En el caso de rsync no es inteligente (o no confía en el delta encoding) luego de la comprobación (la suma de comprobación y la codificación) se hará dos veces.
  • También podría darse el caso de que delta de codificación es mucho más lento que el de 128 bits MD4 la suma de comprobación.

Ambos --checksum y --ignore-times será "muy lento" pero --ignore-times es probable que incluso más lento (debido a la 2 posibilidades de arriba).

Buena pregunta - por favor enviar si usted encuentra cualquier diferencias de rendimiento en la práctica.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: