Cómo usar Rsnapshot para copias de seguridad y restauración en servidores Linux
rsnapshot es una utilidad de copia de seguridad para máquinas basadas en Linux. Está disponible en la mayoría de las distribuciones de Linux, puedes instalarlo fácilmente a través del gestor de paquetes. rsnapshot está escrito en Perl sin dependencias, también admite copias de seguridad locales y remotas.
Con rsnapshot, puedes hacer una copia de seguridad de tu directorio local. En cuanto a la copia de seguridad remota, rsnapshot utiliza ‘ssh’ y ‘rsync’.
En este tutorial, aprenderás a realizar copias de seguridad y restauraciones utilizando Rsnapshot en un servidor Linux. Configurarás rsnapshot para copias de seguridad locales y remotas. También aprenderás a configurar una copia de seguridad automática con rsnapshot y cron.
Requisitos previos
Para completar esta guía, asegúrate de que tienes lo siguiente:
- Un servidor Linux como Debian, Ubuntu, CentOS o cualquier distribución
- Un usuario no root con privilegios de administrador
- Opcional, un servidor adicional para probar la copia de seguridad remota
Instalación de rsnapshot
rsnapshot es una utilidad de copia de seguridad que está disponible en la mayoría de las distribuciones de Linux. Puedes instalarla a través del gestor de paquetes correspondiente. En esta sección, instalarás rsnapshot en el servidor Debian. Así que si utilizas una distribución diferente, instálala con tu gestor de paquetes actual.
Primero, actualiza tu índice de paquetes con el siguiente comando. En este ejemplo, utilizaremos Debian, puedes utilizar distribuciones basadas en Debian como Ubuntu, Linux Mint, etc.
sudo apt update
Una vez actualizado, ejecuta el siguiente comando para instalar el paquete‘rsnapshot‘. Introduce‘Y’ para confirmar la instalación.
sudo apt install rsnapshot
Una vez completada la instalación, comprueba la ubicación del binario‘rsnapshot’ y su versión.
which rsnapshot rsnapshot --version
Puedes ver a continuación que Rsnapshot 1.4 está instalado en‘/usr/bin/rsnapshot‘.
Configurar la autenticación de la clave SSH
Al hacer un respaldo remoto, debes asegurarte de que tu servidor rsnapshot pueda iniciar sesión en el servidor destino usando autenticación de clave SSH. Así que para hacer una copia de seguridad remota, debes tener lo siguiente:
- Un usuario que se utilizará para iniciar sesión en el servidor de destino
- La autenticación basada en clave SSH está activada
En esta sección, generarás una clave SSH en el servidor rsnapshot. Y luego copiarás la clave pública SSH al servidor de destino en‘192.168.10.41’ utilizando el usuario‘alice‘.
En el servidor ‘rsnapshot’, genera las claves SSH pública y privada utilizando el comando‘ssh-keygen‘ que aparece a continuación. Pulsa ‘ENTER’ cuando te pida la clave de ubicación y la contraseña.
ssh-keygen -t ed25519
Ahora ejecuta el comando‘ssh-copy-id‘ que aparece a continuación para subir la clave pública SSH a tu servidor de destino. En este ejemplo, harás la copia de seguridad remota desde el servidor‘192.168.10.41‘ con la autenticación SSH basada en clave y utilizando el usuario‘alice‘.
ssh-copy-id [email protected]
Introduce tu contraseña cuando se te solicite.
Una vez cargada la clave pública SSH, estás listo para configurar Rsnapshot.
Configurar rsnapshot
En esta sección, configurarás rsnapshot tanto para copias de seguridad locales como remotas. Modificarás la configuración por defecto‘/etc/rsnapshot.conf‘, establecerás el directorio de copia de seguridad por defecto, activarás la integración con SSH y Rsync, establecerás el intervalo de copia de seguridad, y luego configurarás la copia de seguridad local y remota.
Copia la configuración por defecto de rsnapshot‘/etc/rsnapshot.conf‘ y modifica el archivo con el editor‘nano‘ o‘vim‘.
sudo cp /etc/rsnapshot.conf /etc/rsnapshot.conf.orig sudo nano /etc/rsnapshot.conf
Cambia el directorio por defecto‘snapshot_root‘ por un nuevo directorio. Este directorio se utilizará para almacenar tus datos de copia de seguridad.
snapshot_root /data/backup/
Descomenta las opciones‘cmd_rsync‘ y‘cmd_ssh‘ para activar la copia de seguridad remota con rsync a través de SSH.
cmd_rsync /usr/bin/rsync cmd_ssh /usr/bin/ssh
Cambia los niveles o intervalos de copia de seguridad por defecto como se indica a continuación. La nomenclatura es opcional, puedes cambiarla según necesites. Así, para este ejemplo, el«diario 6» creará directorios de copia de seguridad denominados«diario.0» a«diario.5«.
NOTA: Utiliza TAB en lugar de espacio, porque dará error.
retain daily 6 retain weekly 7 retain monthly 4
Descomenta la opción‘logfile‘ para habilitar un registro de rsnapshot en el archivo.
logfile /var/log/rsnapshot.log
Si estás ejecutando un servidor remoto con un puerto SSH personalizado, descomenta la opción‘ssh_args‘ y cambia el puerto.
ssh_args -p 22
Ahora, para la copia de seguridad local, utiliza la configuración así. En este ejemplo, haremos una copia de seguridad del directorio local‘/home/arvdl‘ en‘local’. La ruta de destino debe ser una ruta relativa, esto es igual a‘/srv/backup/nombre-intervalo/local‘.
backup /home/arvdl/ local
Para la copia de seguridad remota a través de SSH y rsync, utiliza la configuración así. En este ejemplo, haremos una copia de seguridad de los directorios‘/etc‘ y‘/var/www‘ desde el servidor remoto‘192.168.10.41‘ con el usuario SSH‘alice‘ al directorio de ruta relativa‘server1‘.
backup [email protected]:/etc/ server1 backup [email protected]:/var/www server1
Guarda y sal del archivo cuando hayas terminado.
Después de haber configurado rsnapshot, comprueba y prueba la configuración de rsnapshot con lo siguiente. Si la configuración es correcta, verás una salida‘Sintaxis OK‘.
rsnapshot configtest
Probar la copia de seguridad de rsnapshot manualmente
Ahora que has configurado rsnapshot, vamos a verificar y probar tu copia de seguridad con rsnapshot haciendo la copia de seguridad manualmente, comprobando el directorio de copia de seguridad y el archivo de registro rsnapshot.
Para probar tu copia de seguridad manualmente, ejecuta el siguiente comando ‘rsnapshot’. Asegúrate de cambiar‘diario’ por el nombre de tu copia de seguridad.
rsnapshot daily
Si el proceso se ha completado, comprueba el directorio de copia de seguridad‘/srv/backup‘ con el siguiente comando. Verás un nuevo directorio de copia de seguridad‘daily.0‘ que contiene tus archivos de copia de seguridad de los servidores local y remoto.
ls /srv/backup/
Ahora ejecuta el siguiente comando para comprobar el uso del disco por parte de rsnapshot.
rsnapshot du
En la salida de abajo, puedes ver que el uso total de disco para la copia de seguridad rsnapshot es de 5MB.
Por último, comprueba el archivo de registro de la copia de seguridad‘/var/log/rsnapshot.log‘ para comprobar el proceso de copia de seguridad.
cat /var/log/rsnapshot.log
Lo siguiente muestra que la copia de seguridad se realizó correctamente, pero con algunas advertencias, como permiso denegado al realizar la copia de seguridad del archivo‘/etc/shadow‘.
Copia de seguridad automática con Cron
Para la copia de seguridad automática, puedes integrar rsnapshot con cron. Por ejemplo, configurarás cron para la copia de seguridad automática como‘diaria‘,‘semanal’ y‘mensual‘.
Abre el archivo‘/etc/cron.d/rsnapshot‘ con el editor ‘nano’. Este archivo es un ejemplo generado por rsnapshot.
sudo nano /etc/cron.d/rsnapshot
Introduce la siguiente configuración para la copia de seguridad automática a través de rsnapshot. En este ejemplo, la copia de seguridad‘diaria‘ se ejecutará diariamente, así como la‘semanal‘ y la‘mensual’ dentro de su tiempo respectivo.
0 0 * * * root rsnapshot daily 0 0 * * 0 root rsnapshot weekly 0 0 1 * * root rsnapshot monthly
Guarda el archivo y sal del editor.
Con esto, tu copia de seguridad automática se ejecutará a través de cron.
Restaurar la copia de seguridad rsnapshot
Para restaurar la copia de seguridad rsnapshot, sólo tienes que copiar tus datos del directorio de la copia de seguridad a tu destino. Para este ejemplo, puedes copiar tus datos del directorio de copia de seguridad ‘/srv/backup’.
Conclusión
¡Enhorabuena! Has completado el tutorial para instalar rsnapshot y configurar rsnapshot para copias de seguridad locales y remotas, y has aprendido algunos comandos básicos de ‘rsnapshot’. Por último, también has aprendido a configurar una copia de seguridad automática con rsnapshot y cron.