Sincronización de servidores web con rsync para respaldo y espejo

La gestión de servidores web requiere garantizar la seguridad de los datos y su recuperación rápida en caso de fallos. Una de las herramientas más confiables para realizar respaldos y espejos de datos del servidor web es rsync. Este artículo detalla cómo usar rsync para sincronizar datos entre un servidor web principal y uno de respaldo, configurando accesos automatizados con SSH y programando tareas con cron para respaldos regulares.


¿Qué es Rsync y por qué usarlo?

rsync es una herramienta de sincronización de archivos y directorios en sistemas Linux/Unix que utiliza transferencia diferencial para minimizar el volumen de datos transferidos. Es ideal para respaldos y espejos porque:

  • Mantiene atributos de archivos (permisos, propietarios, marcas de tiempo).
  • Es eficiente en ancho de banda gracias a la compresión.
  • Es fácil de automatizar con cron y SSH.

Requisitos previos

  1. Dos servidores:
    • Servidor Principal: IP 192.168.0.100, nombre de host webserver.example.com.
    • Servidor de Respaldo: IP 192.168.0.101, nombre de host backup.example.com.
  2. Instalación de rsync: Asegúrese de que rsync esté instalado en ambos servidores. Puede instalarlo con los siguientes comandos:
    sudo apt install rsync
    # En Debian, Ubuntu y Mint
    sudo yum install rsync
    # En RHEL/CentOS/Fedora y Rocky/AlmaLinux
    sudo zypper install rsync
    # En OpenSUSE
    sudo pacman -S rsync # En Arch Linux
  3. Acceso SSH habilitado: Configurar acceso SSH entre ambos servidores.

Paso 1: Configurar Acceso SSH sin Contraseña

Para automatizar la sincronización, es necesario configurar un acceso SSH sin contraseña desde el servidor principal al de respaldo.

  1. Generar claves SSH en el servidor principal: ssh-keygen -t rsa -b 2048
    Acepte la ubicación predeterminada del archivo y no configure una frase de paso (dejar en blanco).
  2. Copiar la clave pública al servidor de respaldo: ssh-copy-id [email protected]
    Sustituya user por el nombre de usuario en el servidor de respaldo. Se pedirá la contraseña una vez. Después, el inicio de sesión será sin contraseña.
  3. Probar la conexión: ssh [email protected]
    Si no solicita contraseña, la configuración ha sido exitosa.

Paso 2: Sincronizar Datos del Servidor Web con Rsync

La carpeta típica de un servidor web es /var/www/html/. Utilizaremos rsync para sincronizar esta carpeta con el servidor de respaldo.

Comando básico de Rsync

rsync -avz /var/www/html/ [email protected]:/ruta/de/respaldo
  • -a: Modo de archivo (preserva permisos, propietarios, marcas de tiempo).
  • -v: Salida detallada.
  • -z: Compresión para reducir el tamaño de la transferencia.

Ejemplo: Sincronizar al directorio /backup/webserver en el servidor de respaldo:

rsync -avz /var/www/html/ [email protected]:/backup/webserver

Espejo de directorios con eliminación

Para mantener el directorio de respaldo idéntico al del servidor principal, use la opción --delete:

rsync -avz --delete /var/www/html/ [email protected]:/backup/webserver

Esto elimina archivos en el respaldo que ya no están presentes en el servidor principal.


Paso 3: Automatizar el Respaldo con Cron

Para ejecutar respaldos regulares, programe rsync usando cron.

  1. Editar crontab: crontab -e
  2. Agregar una tarea programada para ejecutar rsync todos los días a la medianoche:
    0 0 * * * rsync -avz --delete /var/www/html/ [email protected]:/backup/webserver
  3. Guardar y salir. Cron ahora ejecutará automáticamente el comando a las 00:00 cada día.

Paso 4: Verificar el Respaldo

  1. Comprobar logs de cron:
    grep CRON /var/log/syslog
  2. Revisar archivos en el servidor de respaldo:Verifique que los archivos en /backup/webserver coincidan con los del servidor principal.
  3. Prueba de eliminación:
    • Elimine un archivo del servidor principal.
    • Ejecute rsync manualmente o espere a la próxima ejecución programada.
    • Verifique que el archivo también sea eliminado en el servidor de respaldo.

Ejemplo de Tabla Comparativa de Opciones de Rsync

OpciónDescripción
-aActiva el modo de archivo (preserva permisos, propietarios, marcas de tiempo).
-vMuestra detalles de los archivos transferidos.
-zHabilita la compresión para reducir el tamaño de transferencia.
--deleteElimina archivos en el destino que ya no están en el origen.
--dry-runSimula la sincronización sin realizar cambios, útil para pruebas.
-e sshEspecifica SSH como protocolo de transferencia.

El uso de rsync para sincronizar servidores web ofrece una solución confiable, eficiente y fácil de automatizar para respaldos y espejos de datos. La combinación de rsync con cron y SSH sin contraseña garantiza que los respaldos se realicen regularmente sin intervención manual, reduciendo el riesgo de pérdida de datos y facilitando la recuperación en caso de fallos del servidor.

Con una configuración adecuada, rsync se convierte en una herramienta esencial para cualquier administrador de sistemas que busque proteger los datos de su infraestructura digital.

Suscríbete al boletín SysAdmin

Este es tu recurso para las últimas noticias y consejos sobre administración de sistemas, Linux, Windows, cloud computing, seguridad de la nube, etc. Lo enviamos 2 días a la semana.

¡Apúntate a nuestro newsletter!


– patrocinadores –

Noticias destacadas

– patrocinadores –

¡SUSCRÍBETE AL BOLETÍN
DE LOS SYSADMINS!

Scroll al inicio