Artículos Guías Manuales Sistemas Linux Windows Redes MySql Binario 0 Binario Cero
Artículos Guías Manuales Sistemas Linux Windows Redes MySql Binario 0 Binario Cero

Cómo Realizar Copias de Seguridad de Directorios Grandes con Unison en Debian

Loading

Unison es una herramienta de sincronización de archivos de código abierto, altamente eficiente para realizar copias de seguridad en grandes conjuntos de datos donde solo se agregan o actualizan algunos archivos. Este caso es común en servidores de archivos.

En estos entornos, la mayoría de los archivos permanecen sin cambios mientras que solo unos pocos se modifican o añaden diariamente. Unison puede identificar y respaldar estos archivos rápidamente, incluso cuando se trata de millones de archivos o terabytes de datos, superando en velocidad a herramientas tradicionales como rsync.

En esta guía, instalarás y configurarás Unison en un par de servidores para respaldar un directorio. Además, configurarás Unison para utilizar SSH como protocolo de comunicación segura y automatizarás las copias con un cron job.

Requisitos Previos

Antes de comenzar, necesitas:

  • Dos servidores con Debian.
  • Familiaridad con la creación de entradas en crontab.

Estos serán los servidores utilizados:

  • Servidor primario: Aloja los datos que se respaldarán.
  • Servidor de respaldo: Aloja los datos respaldados.

Paso 1: Crear Usuarios Adicionales

Primero, accede a ambos servidores como el usuario no root sammy usando SSH:

ssh sammy@IP_servidor_primario  
ssh sammy@IP_servidor_respaldo

En el servidor primario, crea un nuevo usuario llamado primary_user:

sudo adduser primary_user  
sudo usermod -aG sudo primary_user
su - primary_user

En el servidor de respaldo, repite el proceso creando el usuario backup_user. Asegúrate de usar estos usuarios en los pasos siguientes.

Paso 2: Instalar Unison en Ambos Servidores

Actualiza el índice de paquetes y luego instala Unison:

sudo apt-get update  
sudo apt-get install unison

Paso 3: Configurar Claves SSH

Genera un par de claves SSH en el servidor primario:

ssh-keygen -t rsa -b 4096 -f .ssh/unison-primary  

Copia la clave pública al servidor de respaldo. Usa cat para verla:

cat .ssh/unison-primary.pub  

En el servidor de respaldo, agrega la clave pública a ~/.ssh/authorized_keys del usuario backup_user y guarda. Prueba la conexión:

ssh -i .ssh/unison-primary backup_user@IP_servidor_respaldo  

Paso 4: Configurar Unison

Crea el archivo de configuración de Unison:

mkdir ~/.unison  
nano ~/.unison/default.prf

Añade las siguientes líneas:

force = /home/primary_user/data  
sshargs = -i /home/primary_user/.ssh/unison-primary

Paso 5: Respaldar un Directorio

Crea un directorio y algunos archivos en el servidor primario:

mkdir ~/data  
touch ~/data/file{1..5}

Ejecuta Unison para realizar el respaldo:

unison -batch -auto /home/primary_user/data ssh://backup_user@IP_servidor_respaldo//home/backup_user/data  

Paso 6: Crear un Cron Job para Automatizar

Edita el crontab del servidor primario:

crontab -e  

Añade la siguiente línea para ejecutar Unison cada 3 horas:

* */3 * * * /usr/bin/unison -log -logfile /var/log/unison.log -auto -batch -silent /home/primary_user/data ssh://backup_user@IP_servidor_respaldo//home/backup_user/data  

Crea el archivo de log y ajusta su propietario:

sudo touch /var/log/unison.log  
sudo chown primary_user /var/log/unison.log

Paso 7 (Opcional): Asegurar la Configuración de SSH

Edita el archivo /etc/ssh/sshd_config en el servidor de respaldo:

sudo nano /etc/ssh/sshd_config  

Añade:

Match User backup_user  
ForceCommand unison -server

Recarga SSH:

sudo systemctl reload ssh.service  

Prueba que el usuario backup_user solo pueda ejecutar el comando unison.

Esta guía te ayudará a configurar copias de seguridad eficientes y automatizadas usando Unison y SSH en un entorno Debian o Ubuntu.

You may also like...