Solución de copia diferencial para Windows

Necesito hacer una copia de seguridad diaria de un conjunto de archivos grandes (> 3 GB cada uno) que tienen una diferencia de, tal vez, 20 ΜΒ cada día, en su mayoría partes sobrescritas.

El problema es tanto el tiempo necesario para completar la copia de seguridad diaria como el uso del ancho de banda:

Nuestra línea fija de Internet es mala y se apaga a veces, se activa una copia de seguridad de LTE, pero hay una cuota mensual que se consume fácilmente con una o dos copias de seguridad, lo que nos deja gravemente estranguladas durante las horas de trabajo, si la línea fija vuelve a fallar.

Necesito una solución que pueda ejecutarse en los archivos CLI/batch y haga una copia de seguridad diferencial, en Windows, sin necesidad de cygwin. Si no tuviera la limitación de cygwin, rsync sería el principal candidato.

Deberías buscar en Robocopy también
Hola Dave, Robocopy es nuestra solución actual pero no hace copias diferenciales. Claro, la opción MIR copiará todo lo que haya cambiado, etc., pero si un archivo de 3 GB tiene 1 byte cambiado, seguirá copiando los 3 GB.

Respuestas (2)

Uso xcopy (comando integrado de Windows) con las siguientes opciones para lograr algo similar:

xcopy /H /D /E /Y <source> <destination>

/H - Copy system and hidden files.
/D - Only copy files that are newer on the source than the destination.
/E - Copy all directories and subdirectories even if empty.
/Y - Suppress overwrite confirmations.

También tiene muchas otras opciones que vale la pena mirar.

Esto solo copiará archivos completos en lugar de archivos parciales, pero solo los que hayan sido modificados. Hay versiones de Windows de rysnc (algunas incluso con GUI) que no requieren Cygwin, pero no tengo experiencia con ellas.

Gracias por el aporte. El problema es que todos los archivos, 9 de ellos, cambian cada día con pequeños fragmentos agregados o editados. Así que eso es alrededor de 30 GB de datos por día que quiero reducir. Estaría realmente interesado en una versión CLI de rsync para Windows que no requiera cygwin. ¿Por casualidad recuerdas un nombre?
@kntouskos DeltaCopy es uno, pero no estoy seguro de si tiene una CLI. Encontré esto simplemente buscando "windows rsync CLI" - acrosync.com

Tuve un problema similar, pero necesitaba hacer una copia de seguridad incremental de archivos de 50 GB, así que supongo que podrías usar esto.

1. Tomar instantáneas para preservar la consistencia

Esto es completamente opcional y depende de su situación. Si los archivos que desea respaldar están en uso, desea hacer una instantánea de un momento dado de ellos y ejecutar la copia de seguridad en la instantánea. De lo contrario, los archivos pueden cambiar durante la copia de seguridad.

Ya tengo algunas instrucciones fáciles de seguir aquí .

2. Copia de seguridad

Aquí tengo tres opciones para ti:

  • Unison : principalmente una herramienta de sincronización, pero también una sólida alternativa para rsync en Windows (y otras plataformas principales). Implementa el protocolo rsync internamente y no tiene dependencias.
  • zpaq : archivador incremental fuera de línea, deduplicador. Crea pequeñas diferencias, que puede/tiene que transferir manualmente. Efectivo y termina en tiempo constante.
  • Restic : alternativa moderna a zpaq . Agrega cifrado. No es tan eficiente en el espacio como zpaq pero el doble de rápido.
  • xdelta3 : herramienta de diferencias binarias. Muy eficaz, crea diferencias tan grandes como los datos modificados. Por lo general, toma aproximadamente el mismo tiempo que zpaq , pero ocasionalmente su tiempo de ejecución se dispara a 3-5 veces más.