Estoy haciendo un cambio menor a un archivo de imagen de archivo muy grande (solo unos pocos píxeles de diferencia) que toma mucho tiempo transferir a través de la red.
¿Hay alguna manera para que rsync identifique la diferencia en el archivo y solo envíe el pequeño diff a través de la red?
rsync
comporta de esta manera de manera predeterminada. Siempre que el cambio menor sea un cambio menor en el archivo, y el archivo ya exista en ambos lados del enlace en versiones casi idénticas, los datos transferidos deben ser mucho menores que el tamaño total del archivo. Desde el primer párrafo en la página del manual: "Es famoso por su algoritmo de transferencia delta, que reduce la cantidad de datos enviados a través de la red al enviar solo las diferencias entre los archivos de origen y los archivos existentes en el destino".Respuestas:
rsync
El algoritmo de transferencia delta hace esto por defecto. Citando la página de manual de rsync :Si desea deshabilitarlo, deberá usar la opción
-W
o--whole-file
.Si realmente sabe cuánto ha cambiado su archivo, incluso podría optimizar este comportamiento de transferencia delta ajustando el tamaño de su bloque delta:
Y si desea más información sobre el algoritmo en sí, puede encontrarlo aquí: El algoritmo Rsync
fuente