¿rysnc -z tendrá alguna ventaja de compresión si el archivo de entrada ya está comprimido con gzip? Tengo un archivo comprimido grande de 100 GB para enviar a través de la red a través de servidores y falla constantemente (tubería rota) después de varios períodos de tiempo. Me pregunto si debería probar el indicador -z.
Respuesta1
Por lo general, no vale la pena gastar tiempo de CPU para comprimir en tránsito un archivo ya comprimido. Hay advertencias. En el proceso de comparar dos archivos, usar rsync con compresión puede acelerar la comparación de hashes de los datos.
Si solo desea sincronizar versiones comprimidas de archivos grandes en más de un sistema, un lugar para buscar serían ciertas compilaciones de gzip. En un sistema Ubuntu, obtengo:
$gzip-h Uso: gzip [OPCIÓN]... [ARCHIVO]... Comprima o descomprima ARCHIVOS (de forma predeterminada, comprima ARCHIVOS en el lugar). Los argumentos obligatorios para las opciones largas también lo son para las opciones cortas. -c, --stdout escribe en la salida estándar, mantiene los archivos originales sin cambios -d, --descomprimir descomprimir -f, --force forzar la sobrescritura del archivo de salida y comprimir enlaces -h, --help da esta ayuda -l, --list lista el contenido del archivo comprimido -L, --license mostrar licencia de software -n, --no-name no guarda ni restaura el nombre original ni la marca de tiempo -N, --name guarda o restaura el nombre original y la marca de tiempo -q, --quiet suprime todas las advertencias -r, --recursive opera recursivamente en directorios -S, --suffix=SUF usa el sufijo SUF en archivos comprimidos -t, --test prueba la integridad del archivo comprimido -v, --verbose modo detallado -V, --version muestra el número de versión -1, --fast comprimir más rápido -9, --best comprimir mejor --rsyncable Crear un archivo compatible con rsync Sin ARCHIVO, o cuando ARCHIVO es -, lea la entrada estándar. Informar errores a .
¿Notas esa --rsyncable
opción? Evita el uso de compresión adaptativa para que solo se cambien pequeñas partes del archivo comprimido cuando solo hay un pequeño cambio en el archivo fuente. El resto de los datos binarios no se modifica, por lo que rsync no necesitará retransmitir todo. La página de manual indica que esta opción no debería aumentar el tamaño del archivo comprimido en más de un 1% en comparación con sin usar la opción, y que gunzip no notará la diferencia.
Tengo un archivo SQL de 468 MB que comprimí a 57 MB con la --rsyncable
opción. Transfiero este archivo a mi sistema local. Luego agrego un comentario de una línea al archivo sql original en el sistema remoto y lo recomprimo con la opción rsyncable.
$ rsync -avvz --progress -h fooboo:foo.sql.gz. abriendo la conexión usando ssh fooboo rsync --server --sender -vvlogDtprz. foo.sql.gz recibiendo lista de archivos... 1 archivo a considerar transmisión delta habilitada foo.sql.gz 59,64 M 100 % 43,22 MB/s 0:00:01 (xfer#1, para comprobar=0/1) total: coincidencias=7723 hash_hits=9468 false_alarms=0 datos=22366 enviado 54,12 K bytes recibidos 22,58 K bytes 17,05 K bytes/seg el tamaño total es 59,64M la aceleración es 777,59
Nada mal. Rsync solo tuvo que transferir una pequeña cantidad del archivo comprimido más nuevo.
Respuesta2
rsync no reducirá significativamente un archivo ya comprimido durante el tránsito.
Es poco probable que sus transferencias fallidas se solucionen agregando el indicador -z. Sugeriría intentar sincronizar los archivos sin comprimir. rsync luego se comprimirá sobre la marcha. Entonces tiene la ventaja de que, si el archivo fuente cambia y necesita realizar rsync nuevamente, solo se transferirán los bytes modificados. Si cambia un archivo comprimido, lo más probable es que rsync tenga que retransmitirlo en su totalidad. Consulte aquí para obtener más detalles:
Respuesta3
Usarlo rsync -z
no tendrá ninguna ventaja respecto a rsync
cuando se trata de un archivo que ya ha sido comprimido usando un buen formato de compresión. Sin embargo, podría considerar dividir su archivo comprimido en partes más pequeñas, para poder transmitirlo usando rsync.
Aquí hay una guía para Linux:http://www.techiecorner.com/107/how-to-split-large-file-into-several-smaller-files-linux/ Y para Windows:http://www.online-tech-tips.com/computer-tips/how-to-split-a-large-file-into-multiple-smaller-pieces/