En toda empresa, salvaguardar la información que se maneja para poder asegurar su disponibilidad ante eventos inesperados es de importancia fundamental. El hardware se puede reponer, el software se puede volver a instalar, pero si ante un imprevisto (robo, daño, o error humano) llegamos a perder nuestros datos, la magnitud del problema es mucho mayor. Es precisamente por ese motivo que tenemos la necesidad de asegurarnos de que los sistemas por los que somos responsables cuentan con copias de respaldo, y si dicha tarea puede automatizarse mediante shell scripts o una herramienta similar, tanto mejor.
Copias de respaldo con rsync
En un post anterior introdujimos la idea de realizar backups utilizando tar. Si bien este método básico funciona para esta tarea, también disponemos de otra herramienta más versátil para hacer copias de respaldo, y que inclusive nos permite hacer backups remotos y sincronizar con nuestra copia local. Estamos hablando de rsync.
Aunque como dijimos, rsync permite realizar copias de respaldo y sincronizar con equipos remotos, en este post consideraremos el caso en que el backup se realiza a una unidad USB o de cinta conectada físicamente a nuestro equipo y montada en /mnt/backups (si el directorio no existe, lo crearemos). Para fines prácticos, supondremos que solamente queremos respaldar el contenido de /home.
La sintaxis de rsync es muy simple:
rsync [opciones] [fuente] [destino]
Las opciones más utilizadas son -a
, -v
, y -z
, a menudo combinadas en la expresión -avz
. El uso de estas opciones nos permitirá ver mensajes por pantalla detallando la operación en curso e indicar que los datos a respaldar sean comprimidos durante la transferencia. Durante el mismo proceso también estaremos descendiendo recursivamente dentro de /home de manera que sean respaldados todos los subdirectorios que contenga.
Sin más, el comando a utilizar es el siguiente:
rsync -avz /home /mnt/backups
En la Fig. 1 vemos el listado detallado de /mnt/backups antes y después de llevar a cabo el backup:
Como tarea antes del próximo post, podríamos fijarnos en el tamaño total de /mnt/backups/home y compararlo con /home. Salvo que hayamos hecho modificaciones luego de realizar la copia de respaldo, ambos deberían ser idénticos.
du -sc /home/* du -sc /mnt/backups/home/*
¡No se pierdan el próximo post!