Tengo una gran imagen iso que está descargando actualmente un cliente de torrent con la reserva de espacio activada: eso significa que el tamaño del archivo no cambia mientras que algunos fragmentos en (4 Mib) cambian constantemente debido a una descarga.
Con una descarga del 90%, hago la rsync inicial para ahorrar tiempo más tarde:
$ rsync -Ph DVD.iso / media / another-hdd / Enviar lista de archivos incrementales DVD.iso 2.60G 100% 40.23MB / s 0:01:01 (xfer # 1, para verificar = 0/1) enviado 2.60G bytes recibidos 73 bytes 34.59M bytes / seg el tamaño total es 2.60G, la aceleración es 1.00
Luego, cuando el archivo está completamente descargado, vuelvo a sincronizar:
total size is 2.60G speedup is 1.00
Speedup = 1 dice que no se utilizó la transferencia delta, aunque el 90% del archivo no ha cambiado, el directorio de destino está en otro FS y la copia lleva varios minutos. ¿Por qué no intenta acelerar la transferencia? ¿Cómo puedo forzar rsync
a usar delta-transfer?
Respuestas:
De acuerdo con la página de manual , psusi es correcto:
fuente
-no-W
-no-W
no funciona solo la opción larga-no-whole-file
. Mi razón para necesitar este interruptor es cuando configuro una copia de seguridad y tengo archivos grandes (por ejemplo, imágenes) que no tienen el mismo tiempo de modificación. Es MUCHO más rápido, la aceleración es 163.26, para sincronizar estos archivos usando la transferencia delta en mi sistema de archivos local.--no-whole-file
(por favor, tenga en cuenta el doble--
al principio).La respuesta directa a esta pregunta es:
Use la
--no-W
bandera para forzar la compresión delta, sin importar local o remota.Actualización: Parece que hay más en la historia. El
delta compression
parece estar permitido sólo entre recibir y procesar transmisión de rsync. Al enviar el archivo al sistema de archivos,rsync
aún puede escribir todo el archivo (s), incluso con la compresión delta activada.Vea la investigación de "Wakan Tanka" aquí .
fuente
--no-W
Siempre transfiero todo el archivo en mi caso. Por favor, consulte unix.stackexchange.com/questions/291156/…Por defecto, rsync primero crea una nueva copia del archivo de destino y luego lo reemplaza, por varias razones de seguridad. Puede anular esto especificando
--inplace
junto con--no-whole-file
. Esto le dice a rsync que realice una edición en el lugar del archivo de destino, aceptando los diversos riesgos (generalmente menores para esta situación) como se documenta en la página del manual.fuente
Por defecto
rsync
crea una copia del archivo en el destino y luego reemplaza atómicamente el original con la nueva copia. Esto se hace por razones de seguridad. Lo que está buscando es la--inplace
opción, que hará que sersync
modifiquen solo las partes del archivo de destino que han cambiado en relación con la fuente.Para el caso de uso del OP, recomiendo desactivar también la preasignación, de modo que se pueda sincronizar una copia dispersa, que será mucho más rápida. Para las descargas, no se preocupe por la fragmentación a menos que esté usando un sistema de archivos muy antiguo como VFAT. Los archivos multimedia en particular no se leen con el máximo rendimiento de los medios de almacenamiento, por lo que desfragmentarlos es un esfuerzo inútil.
Para copiar escasamente su directorio de descargas al volumen de destino, le recomiendo estos indicadores y operaciones, en este orden:
El primer pase copiará los archivos nuevos escasamente al destino. El segundo pase actualizará los archivos existentes en el lugar, copiando solo los cambios.
Dado que está haciendo copias delta dispersas e in situ, puede ejecutar esto repetidamente sin incurrir en mucho IO adicional. Incluso si tiene 20 torrents ejecutándose simultáneamente, no amplificará las escrituras en el destino ni alterará los volúmenes de origen / destino.
fuente