Hacer copias de seguridad con rsnapshot

Hacer copias de seguridad con rsnapshot en sistemas Linux.

La herramienta rsnapshot, tiene la capacidad de crear backups incrementales personalizados, tanto locales como remotos. Escrita en Perl sin dependencias de módulos, en realidad es un sencillo pero poderoso back-end del comando rsync.

Su configuración no es compleja, en unos pocos minutos lo puedes tener listo. Como es lógico, los archivos podrán ser restaurados por el usuario root, también por otros usuarios con permisos sin requerir la intervención del root. En este artículo de hoy, vemos como instalar rsnapshot en linux, así como su configuración básica.

Copias de seguridad con rsnapshot

Copias de seguridad con rsnapshot

 

Hacer copias de seguridad con rsnapshot

Procedemos a instalar rsnapshot, en nuestro sistema linux preferido.

En Debian, Ubuntu y derivados:

sudo apt install rsnapshot

En CentOS, Fedora, Alma Linux y derivados:

sudo yum install rsnapshot

# o

sudo dnf install rsnapshot

En Arch Linux, Manjaro y derivados:

sudo pacman -S rsnapshot

En OpenSUSE y derivados:

# Modifica la version si es necesario.
# En nuestro ejemplo OpenSUSE 15.2.

zypper addrepo https://download.opensuse.org/repositories/openSUSE:Leap:15.2/standard/openSUSE:Leap:15.2.repo

zypper refresh

zypper install rsnapshot

Ejemplo de instalación.

Instalar rsnapshot

Instalar rsnapshot

 

Una vez instalada la herramienta, vamos a configurarla. Para ello abrimos y editamos su archivo «.conf».

sudo nano /etc/rsnapshot.conf

Lo primero que debes configurar, es la ubicación donde se guardan los backups. Busca la siguiente linea…

snapshot_root   /var/cache/rsnapshot/

En nuestro ejemplo lo modificamos por /backup.

snapshot_root   /backup/

Un poco más abajo, veremos los valores de rotación de backups.

Intervalos de tiempo entre backups

Rotación de backups

 

Los explicamos…

  • retain alpha : Diarias.
  • retain beta : Semanales.
  • retain gamma : Mensuales.
  • retain delta : Anuales (por defecto deshabilitado).

Entonces, según lo visto anteriormente se guardaran 6 copias diarias, 7 semanales y 4 mensuales. En nuestro caso lo modificamos con otros valores más lógicos.

#########################################
#     BACKUP LEVELS / INTERVALS         #
# Must be unique and in ascending order #
# e.g. alpha, beta, gamma, etc.         #
#########################################

retain  alpha   4
retain  beta    3
retain  gamma   1
#retain delta   3

 

Ahora debes descomentar dos comandos más.

cmd_ssh        /usr/bin/ssh

# y

cmd_du         /usr/bin/du

Ejemplo…

#################################
# EXTERNAL PROGRAM DEPENDENCIES #
#################################

# LINUX USERS:   Be sure to uncomment "cmd_cp". This gives you extra features.
# EVERYONE ELSE: Leave "cmd_cp" commented out for compatibility.
#
# See the README file or the man page for more details.
#
cmd_cp          /bin/cp

# uncomment this to use the rm program instead of the built-in perl routine.
#
cmd_rm          /bin/rm

# rsync must be enabled for anything to work. This is the only command that
# must be enabled.
#
cmd_rsync       /usr/bin/rsync

# Uncomment this to enable remote ssh backups over rsync.
#
cmd_ssh        /usr/bin/ssh   <<<------------ Descomentar

# Comment this out to disable syslog support.
#
cmd_logger      /usr/bin/logger

# Uncomment this to specify the path to "du" for disk usage checks.
# If you have an older version of "du", you may also want to check the
# "du_args" parameter below.
#
cmd_du         /usr/bin/du   <<<------------ Descomentar

# Uncomment this to specify the path to rsnapshot-diff.
#
#cmd_rsnapshot_diff     /usr/bin/rsnapshot-diff

# Specify the path to a script (and any optional arguments) to run right
# before rsnapshot syncs files
#
#cmd_preexec    /path/to/preexec/script

Guarda el archivo y cierra el editor.

 

Verificamos que la configuración es correcta.

rsnapshot configtest

En nuestro ejemplo se produce un error, que nosotros mismos hemos provocado para que tengas clara la solución.

Error de configuracion en rsnapshot

Error de configuración en rsnapshot

 

Si observas el primer error (es el que produce el resto), nos dice que hemos separado «snapshot_root   /backup» con la tecla espaciadora (espacio). La herramienta rsnapshot, no tiene la capacidad de reproducir los espacios, debes usar la «tecla Tab». Entonces… borras la línea entera y escribes «snapshot_root», ahora pulsas la tecla tabuladora y escribes la ruta, «/backup».

Guarda el archivo y cierra el editor. Verificamos de nuevo.

rsnapshot configtest

Perfecto, ahora todo es válido.

root@SoloLinux-demo:~# rsnapshot configtest
Syntax OK
root@SoloLinux-demo:~#

También puedes hacer otra prueba, si quieres saber como se ejecutara la herramienta (en nuestro ejemplo, usamos la copia diaria).

rsnapshot -t alpha

Salida de ejemplo.

root@SoloLinux-demo:~# rsnapshot -t alpha
echo 31420 > /var/run/rsnapshot.pid 
mkdir -m 0700 -p /backup/ 
mkdir -m 0755 -p /backup/alpha.0/ 
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded \
    /home/ /backup/alpha.0/localhost/ 
mkdir -m 0755 -p /backup/alpha.0/ 
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded /etc/ \
    /backup/alpha.0/localhost/ 
mkdir -m 0755 -p /backup/alpha.0/ 
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded \
    /usr/local/ /backup/alpha.0/localhost/ 
touch /backup/alpha.0/ 
root@SoloLinux-demo:~#

 

Como último paso, solo necesitas crear las tareas cron. Debes tener presente, la nomenclatura asignada por la herramienta a los grupos de copias.

  • retain alpha : Diarias.
  • retain beta : Semanales.
  • retain gamma : Mensuales.

Por ejemplo, si quieres ejecutar la copia de seguridad todos los días a las 00:00 horas, hora de servidor.

0 0 * * * /usr/bin/rsnapshot alpha

Es así de simple.

 

Nota final: Las denominaciones «alpha, beta y gamma», pueden ser modificadas desde el archivo de configuración; por ejemplo… «dia, semana y mes». También te recomiendo revisar exhaustivamente el archivo de configuración, encontrarás múltiples e interesante funciones de las que no hablamos en este artículo.

 

Canales de Telegram: Canal SoloLinux – Canal SoloWordpress

Espero que este artículo te sea de utilidad, puedes ayudarnos a mantener el servidor con una donación (paypal), o también colaborar con el simple gesto de compartir nuestros artículos en tu sitio web, blog, foro o redes sociales.

Chat de SoloLinux en Telegram

 

Agregar comentario

1 logo sololinux

Suscríbete a SoloLinux

Recibe todos los nuevos artículos es tu correo electrónico

You have Successfully Subscribed!

Ir al contenido