07.06.2023

Cómo configurar copias de seguridad periódicas incrementales usando Rsync en Ubuntu 20.04

Antes miramos instalando Rsync en Ubuntu 20.04 y creación de una copia de seguridad única. Para completar la configuración desde la guía actual, siga los pasos del primer artículo.

Para muchas tareas, basta con agregar la ejecución de dicha copia de seguridad a cron, pero estas herramientas le permiten realizar y almacenar múltiples copias de archivos y tener un historial de cambios durante un período de tiempo determinado. En este tutorial, veremos cómo configurar una copia de seguridad periódica incremental usando Rsync en Ubuntu 20.04.

Lógica de respaldo

Al realizar una copia de seguridad por primera vez, todos los archivos de destino se colocan en el ser completados carpeta. En lanzamientos posteriores, el script actualiza todos los archivos en esta carpeta y coloca las versiones anteriores de los archivos modificados en el incremento carpeta con la fecha correspondiente. Así, se mantiene constantemente una copia de seguridad completa actualizada, así como una lista de archivos modificados para cada fecha. Se configura el periodo de retención, así como la frecuencia de lanzamiento de la tarea.

Realizamos la configuración básica para la interacción de servidores usando Rsync en el primera parte del manual. Ahora vamos a crear un script para copias de seguridad incrementales periódicas.

Creación de un script de copia de seguridad

Cree carpetas para almacenar sus copias de seguridad:

sudo mkdir -p /opt/destination/lleno
sudo mkdir -p /opt/destination/incremento

Al crear un archivo de secuencia de comandos, puede seleccionar una carpeta de ubicación. Si lo pones en el /etc/cron.por hora carpeta, la sincronización ocurrirá cada hora, y si en el /etc/cron.daily, luego diariamente, etc. Vamos a crear un archivo de script:

sudo nano /etc/cron.hourly/backup

Evite los puntos en el nombre del archivo de script en las carpetas del programador cron. Más información sobre Crono.

En el siguiente script, debe especificar al menos la dirección IP correcta del servidor de origen. El resto de los valores se pueden dejar como están. Pegue las siguientes líneas en el archivo abierto:

#! / Bin / bash
# Ruta a la carpeta para copias de seguridad
destino=/optar/destinonation
# Dirección IP del servidor de origen
ip = 10.5.5.10
# Usuario de Rsync en el servidor de origen
usuario = usuario de respaldo
# El recurso que configuramos en el archivo /etc/rsyncd.conf en el servidor de origen
src=datos
# Establecer el período de retención para copias de seguridad incrementales en días
retención=30
# Iniciar el proceso de copia de seguridad
rsync -a --delete --password-file=/etc/rsyncd.passwd ${usuario}@${ip}::${src} ${dest}/full/ --backup --backup-dir=$ {destino}/incremento/`fecha +%Y-%m-%d`/
# Limpiar archivos incrementales anteriores al período de retención especificado
encuentre ${destino}/incremento/ -min depth 1 -max depth 2 -type d -mtime +${retention} -exec rm -rf {} \;

Guarde el archivo de script y agregue los derechos de lanzamiento:

sudo chmod 0744 /etc/cron.hourly/backup

Ahora el script sincronizará los datos en el origen y el destino.natcada hora, agregando versiones antiguas de archivos eliminados a la carpeta correspondiente en /opt/destinonation/incremento/.