rsync: cómo crear una copia de seguridad incremental
Llámalo como quieras, backup, respaldo, copia de seguridad, pero hazla. Las copias de seguridad son algo vital para evitar pérdida de datos y frecuentemente caen en el olvido. Esto cuesta muchos disgustos y dinero a multitud de empresas, pero también a usuarios domésticos que ven cómo sus documentos o trabajos se esfuman de la noche a la mañana. Ya sea por un fallo en el disco duro, por algún problema de software que deja los datos corruptos, por ransomware, etc. Y aquí podrás aprender a hacerla con rsync.
Recuerda que para evitar pérdida de datos, si se lleva una buena política de copia de seguridad podrás preservar tus datos o la mayoría de ellos. Recuerda hacer las copias con frecuencia (adecuada a la cantidad de datos que generas nuevos y la importancia de los mismos) y hacerla en medios seguros. Es decir, no los almacenes en medios perecederos como discos ópticos que se pueden rayar…
Existen varios tipos de copia de seguridad, y el que me interesa aquí es la copia incremental que se hará sin instalar nada, solo con la herramienta rsync que encontrarás ya en tu distro.
Tipos de copias de seguridad
Si aún no sabes qué es una copia de seguridad incremental, y las diferencias con otros tipos, básicamente quédate con esto:
- Completa: se copian todos los archivos que pueda haber en una unidad o directorio.
- Incremental: solo copiará los archivos que hayan sido modificados tras haber hecho una copia de seguridad previa de tipo completo o diferencial. Para ello compara las fechas de modificación de los archivos de la fuente y los de la copia previa y si hay diferencias el software tomará la decisión de copiar solo aquellos que se hayan modificado. Lo bueno de esta copia es que no es tan pesada como la completa y permite actualizar solo lo que te interesa.
- Diferencial: es algo intermedio entre la completa y la incremental. Es decir, copiará tanto los archivos que se han creado nuevos como los que se han modificado.
Cómo crear las copias con rsync
Aunque en el título solo se menciona las incrementales, incluiré también las otras, ya que no me gusta ningún trabajo y seguramente te venga bien recordar los comandos para ello.
- Para una copia de seguridad completa:
rsync -avh /ruta/origen /ruta/destino
- Para una copia de seguridad incremental:
rsync -avhb --delete --backup-dir=/ruta/destino/copia_$(date +%d%m%Y%H%M) /ruta/origen/ /ruta/destino/
- Para la diferencial, si quieres incluso hacerla desde un script para programarla diaria, semanal o mensualmente, puedes usar este código:
#!/bin/bash DAY=$(date +%A) if [ -e /ruta/copia/incr/$DAY ] ; then rm -fr /ruta/copia/incr/$DAY fi rsync -a --delete --quiet --inplace --backup --backup-dir=/ruta/copia/incr/$DAY /ruta/origen/ /ruta/destino/