Backups con rsync: variantes y más ejemplos

En el post anterior hablamos acerca de la importancia de disponer de copias de respaldo de nuestros datos, y sobre cómo realizar backups con rsync. En esta oportunidad consideraremos otros ejemplos útiles que nos servirán de ayuda en esta tarea tan importante.

La sincronización en los backups con rsync

Si bien el ejemplo inicial que vimos en Copias de respaldo: la importancia de tener backups sirvió para introducir el uso de esta herramienta, hay cuestiones importantes a considerar para los backups sucesivos:

  • Si un archivo se modifica en la fuente, el cambio debe verse reflejado en el destino.
  • Si un archivo se borra en la fuenta, el cambio debe verse reflejado en el destino. Por defecto, rsync no borrará archivos en el destino a menos que le indiquemos específicamente que así lo haga mediante la opción --delete. Por el margen de error que puede existir al realizar dicha operación, es conveniente realizar una simulación de los cambios que se efectuarían ANTES de proceder con la copia propiamente dicha. Para llevar a cabo esta tarea contamos con la opción --dry-run.

Para ejemplificar los dos escenarios mencionados anteriormente, 1) modificaremos el archivo /home/gacanepa/names.txt (recordemos que el directorio /home era la fuente, o directorio, que deseamos respaldar agregándole una línea con contenido aleatorio:

echo "Aprendiendo a hacer backups con rsync" >> /home/gacanepa/names.txt

y 2) borraremos el archivo /home/gacanepa/msg.txt:

rm /home/gacanepa/msg.txt

En la Fig. 1 podemos ver el resultado de la simulación del backup luego de haber efectuado los dos cambios mencionados anteriormente:

rsync -avz --delete --dry-run /home /mnt/backups
Simulación de backups con rsync
Figura 1 – Simulación de backups con rsync

Como podemos ver en la imagen anterior, el archivo que fue borrado en la fuente no fue removido del destino, ni tampoco el archivo que fue modificado fue actualizado (como podemos constatar mediante la última fecha de modificación del mismo).

Ahora realicemos la misma operación pero quitando la opción --dry-run y observemos qué sucede (ver Fig. 2):

rsync -avz --delete /home /mnt/backups
Borrar y actualizar archivos con rsync
Figura 2 – Borrar y actualizar archivos con rsync

Como podemos ver, el archivo /mnt/backups/home/gacanepa/msg.txt fue eliminado, mientras que la fecha de última actualización de /mnt/backups/home/gacanepa/names.txt refleja el momento en que fue realizado el cambio hace unos instantes.

Espero que este post les haya resultado de utilidad. ¡Nos leemos en breve!