Skip to content
Backup 2024-12-29 9 min read

Automatización de Backups en Servidores Linux con Rsync y Cron

Las copias de seguridad son, en la práctica, un seguro contra la pérdida de datos: nadie las necesita hasta el día en que las necesita con urgencia. **Rsync** y **Cron** forman una combinación clásica y muy probada en el mundo Linux para automatizar backups: Rsync sincroniza archivos de forma eficiente (transfiriendo solo lo que cambió), y Cron se encarga de ejecutar ese proceso en el horario que definas, sin intervención manual. En esta guía armamos un sistema de backups automatizado completo, desde la instalación hasta la rotación de copias antiguas.

Automatización de Backups en Servidores Linux con Rsync y Cron
#Backup#Linux#Rsync#Cron
T
Equipo Terranode
Editorial

¿Por qué Rsync y Cron son una combinación tan efectiva?

  • Rsync es una herramienta flexible y eficiente para sincronizar archivos y directorios, tanto localmente como a través de una red. Su gran ventaja es que solo transfiere los cambios (delta) entre el origen y el destino, en lugar de copiar todo desde cero cada vez.
  • Cron es el programador de tareas nativo de Linux, encargado de ejecutar comandos automáticamente en los horarios que definas, sin que nadie tenga que iniciar el proceso manualmente.

Qué necesitas antes de empezar

  • Acceso a un servidor Linux con permisos de sudo.
  • Un destino para los backups: puede ser un disco externo, otro servidor remoto, o un servicio de almacenamiento en la nube.
  • Tiempo para probar la configuración con simulaciones antes de confiar en ella al 100% en producción.

Instalación de Rsync

En distribuciones basadas en Debian/Ubuntu:

bash
sudo apt update
sudo apt install rsync -y

En distribuciones basadas en Red Hat/CentOS:

bash
sudo yum install rsync -y

Verifica la instalación:

bash
rsync --version

Comando básico de Rsync

La sintaxis general es:

bash
rsync [opciones] origen destino

Un ejemplo típico para respaldar la carpeta de un sitio web:

bash
rsync -avz /var/www /backup
  • -a: modo archivo, preserva permisos, enlaces simbólicos y la estructura completa de directorios.
  • -v: modo detallado (verbose), muestra el progreso durante la transferencia.
  • -z: comprime los datos durante la transferencia para ahorrar ancho de banda, especialmente útil en backups remotos.

Backup hacia un servidor remoto

Rsync puede transferir datos directamente a otro servidor por SSH:

bash
rsync -avz /var/www usuario@servidor_remoto:/ruta/del/backup

Si es la primera vez que te conectas a ese servidor, prueba primero el acceso SSH manualmente para confirmar credenciales y aceptar la huella digital del host:

bash
ssh usuario@servidor_remoto

Para automatizar completamente el proceso sin que pida contraseña cada vez, configura autenticación por llaves SSH entre ambos servidores.

Automatizar el backup con Cron

Abre el editor de tareas programadas del usuario actual:

bash
crontab -e

Y agrega una línea con el horario y el comando deseado. Por ejemplo, para ejecutar el backup todos los días a las 2:00 a.m.:

text
0 2 * * * rsync -avz /var/www usuario@servidor_remoto:/ruta/del/backup
  • **0 2 ***: expresión cron que representa "a las 2:00 a.m., todos los días".
  • El resto de la línea es el mismo comando rsync que ya probaste manualmente.

Para confirmar que la tarea quedó registrada correctamente:

bash
crontab -l

Simular el backup antes de ejecutarlo en serio

Rsync incluye un modo de simulación que te muestra exactamente qué archivos se transferirían, sin copiar nada realmente. Es una práctica muy recomendable antes de confiar una tarea crítica a Cron:

bash
rsync -avz --dry-run /var/www usuario@servidor_remoto:/ruta/del/backup

Buenas prácticas para una estrategia de backups sólida

  • Respalda todo lo crítico: no olvides bases de datos, archivos de configuración importantes y contenido estático, no solo el código de la aplicación.
  • Define la frecuencia según la criticidad del dato: datos críticos (bases de datos transaccionales) idealmente diarios o cada pocas horas; datos menos sensibles, semanales.
  • Mantén copias en múltiples ubicaciones: disco local, servidor remoto y almacenamiento en la nube, siguiendo la estrategia 3-2-1 (3 copias, 2 medios distintos, 1 fuera del sitio).
  • Cifra los backups sensibles: usa herramientas como GPG para proteger datos confidenciales antes de transferirlos o almacenarlos.
  • Monitorea el proceso: configura alertas o revisa logs periódicamente para confirmar que los backups se están ejecutando correctamente y no fallando en silencio.

Rotación de backups: conservar versiones antiguas

Para no perder versiones anteriores cuando un archivo se elimina o modifica en el origen, Rsync permite mover los cambios a un directorio de "backup antiguo" en lugar de descartarlos:

bash
rsync -avz --delete --backup --backup-dir=/backup/old /var/www /backup/current
  • --delete: elimina en el destino los archivos que ya no existen en el origen, para mantener ambos directorios sincronizados.
  • --backup + --backup-dir: en lugar de simplemente borrar esos archivos del destino, los mueve al directorio indicado, conservando un historial de cambios.

Casos de uso prácticos

  • E-commerce: garantiza que nunca pierdas datos de clientes, pedidos o inventario ante una falla inesperada.
  • Medios y noticias: mantiene respaldos frecuentes de imágenes, videos y artículos publicados.
  • Desarrollo de software: copias regulares de código fuente y archivos de configuración como capa adicional a tu control de versiones.

Combinar Rsync y Cron te da un sistema de backups automatizado, eficiente y confiable, sin depender de software adicional ni de que alguien recuerde ejecutar el proceso manualmente. Empieza con una configuración simple, valida con --dry-run, y ve incorporando rotación y notificaciones a medida que la criticidad de tus datos lo justifique. Si tienes dudas durante la implementación, nuestro equipo de soporte técnico está disponible 24/7 para ayudarte.

Ready to take your site to the next level?

LiteSpeed hosting, NVMe and 24/7 support from $3/mo.

View hosting plans

Frequently asked questions