Si un conjunto de archivos (varios GB de gran tamaño cada uno) y cada uno cambia ligeramente todos los días (en lugares aleatorios, no solo la información adjunta al final), ¿cómo se puede copiar de manera eficiente? Quiero decir, en el sentido de que solo las partes modificadas se actualizan, y no todos los archivos. Eso significaría la diferencia entre copiar algunos Kb aquí y allá o algunos GB.
                9
            
  
            
difflo hagadiffpodría informar diferencias, pero aquí el problema es copiar las pequeñas diferencias.rsynces mejorRespuestas:
El programa rsync hace exactamente eso. Desde la página del manual:
fuente
rsynccompara los fragmentos de archivos usando sumas de comprobación continuas.rsync -av --progress --partial --inplace arch-test1.qcow2.bak arch-test1.qcow2Probablemente desee un programa de copia de seguridad de deduplicación moderno. Echa un vistazo a BorgBackup .
Esto hará múltiples copias de seguridad de cada versión de su archivo grande, pero compartirá el contenido común entre las diferentes versiones, por lo que el espacio total utilizado para una versión dada de su archivo grande solo será un poco más que el espacio total en disco para un solo versión, suponiendo que las diferentes versiones solo difieran ligeramente.
fuente
Si tiene alguna IO limitada, use un sistema de archivos como BTRFS o ZFS que admita directamente copias de seguridad incrementales sin tener que encontrar las diferencias en los archivos, como lo que
rsynctiene que hacer.El uso
rsyncserá lento y muy intensivo en IO.Porque si cualquier aplicación que esté escribiendo cambios en los archivos está de alguna manera limitada por IO, el uso
rsyncva a quitar importantes ciclos de IO de la aplicación, esa es la razón por la que existen los archivos. Y si su proceso o sistema de respaldo está limitado por IO,rsyncle quitará ciclos de IO a su ancho de banda de respaldo disponible.Simplemente Google "rsync es lento". Por ejemplo: rsync es muy lento (factor 8 a 10) en comparación con cp al copiar archivos de nfs-share a directorio local
fuente