Estoy usando rsync para hacer una copia de seguridad de un repositorio que contiene muchos archivos gz, incluidos muchos nuevos cada día. La copia de seguridad de rsync avanza más lentamente de lo debido porque estos archivos gz no están construidos con la opción --rsyncable de gzip (que hace que los archivos gz sean mucho más amigables para rsync sin aumentar significativamente su tamaño o afectar su compatibilidad). Y no puedo solucionar el problema en el momento de la creación porque los archivos son generados por un script de python (rdiff-backup) que usa el módulo gzip de python y esto no admite un equivalente al grsip --rsyncable.
Entonces, antes de ejecutar rsync, puedo identificar cualquier archivo gz nuevo en los datos de origen (es decir, nuevo desde la última vez que se ejecutó rsync). Ahora quiero 'volver a comprimir' estos archivos para que estén comprimidos en formato rsyncable. Entonces puedo ejecutar rsync desde la fuente optimizada.
Creo que esto significa ejecutar cada archivo a través de gunzip y luego gzip --rsyncable, pero no estoy muy seguro de cómo hacerlo de una manera que no corra el riesgo de perder datos o metadatos. Sugerencias recibidas con gratitud.
--rsyncable
debería importar es si los archivos se cambian entre ejecuciones ersync
intenta enviar los cambios. A los archivos nuevos no les importa si son rsyncable o no, porquersync
de todos modos tiene que enviar todos los datos. ¿Se están cambiando los archivos entre las ejecuciones de rsync?--rsyncable
.-a
bandera. Además, mi versión de gzip no tiene un--rsyncable
indicador, pero viene con un programa llamadoznew
que probablemente podría usarse para lo que necesita.--rsyncable
no ayudaría. Esperaba una línea de código o script corto que descomprimiera de forma segura un archivo gz y lo volviera a empaquetar usando--rsyncable
. Pero es solo una pregunta académica para mí ahora.Respuestas:
fuente
gunzip | gzip
, está perdiendo el nombre y la hora sin comprimir almacenados en el archivo gz (y visto congzip -vNl
)