Copias de seguridad automáticas con rsync y cron
Introducción
En entornos profesionales y domésticos, garantizar la integridad y disponibilidad de los datos es crucial. Las copias de seguridad automáticas ofrecen una capa esencial de protección ante fallos de hardware, errores humanos o ataques de malware. rsync combinado con cron constituye una solución flexible, eficiente y de bajo coste para implementar backups periódicos en sistemas basados en Unix/Linux.
¿Qué es rsync
rsync es una herramienta de sincronización y transferencia de archivos que destaca por:
- Algoritmo delta: copia solo los bloques modificados.
- Compresión y cifrado: con -z para comprimir y -e ssh para transferir por túnel seguro.
- Eficiencia: reduce el ancho de banda y acelera las sincronizaciones posteriores.
Para más detalles, consulta la Documentación oficial de rsync.
¿Qué es cron
cron es un demonio que ejecuta tareas en horarios definidos por el usuario. Se configura mediante archivos crontab, que permiten especificar la frecuencia y el comando o script a ejecutar.
Referencia rápida: Formato de crontab.
Ventajas de las copias automáticas
- Confiabilidad: los backups se realizan sin intervención manual.
- Escalabilidad: aplicado a servidores, estaciones de trabajo y dispositivos remotos.
- Flexibilidad: admite filtros, exclusiones y múltiples destinos.
- Economía: utiliza software libre y recursos existentes.
Requisitos previos
- Sistema Linux/Unix con rsync y cron instalados.
- Acceso SSH configurado (si el destino es remoto) con clave pública.
- Espacio suficiente en el destino de la copia.
- Permisos adecuados de lectura en los orígenes y de escritura en el destino.
Configuración básica de rsync
Un comando típico de rsync para copia local sería:
Explicación de opciones:
| Opción | Descripción |
|---|---|
| -a | Modo archivo (preserva permisos, fechas, enlaces). |
| -v | Modo verbose (muestra progreso). |
| –delete | Elimina en destino archivos borrados en origen. |
Ejemplo de script de backup
ORIGEN=/home/usuario/
DESTINO=/backup/usuario/
LOG=/var/log/backup.log
FECHA=(date %Y-%m-%d_%H-%M)
echo Backup iniciado: FECHA >> LOG
rsync -azh –delete –exclude=.tmp ORIGEN DESTINO >> LOG 2>1
echo Backup finalizado: (date %Y-%m-%d_%H-%M) >> LOG
Este script:
- Registra el inicio y fin de cada ejecución.
- Excluye archivos temporales.
- Usa compresión (-z) y preserva atributos (-h).
Programar backups con cron
Para ejecutar el script todos los días a las 2:00 AM, añade al crontab del usuario:
Edición rápida:
- crontab -e: edita el crontab actual.
- crontab -l: lista las tareas programadas.
Monitoreo y notificaciones
Para recibir alertas por correo electrónico en caso de error, añade al inicio del script:
set -o pipefail
O utiliza herramientas como mailx o ssmtp para enviar un resumen diario.
Seguridad y cifrado
Para copias remotas, siempre especifica el uso de SSH:
Considera el uso de ssh-agent para no introducir la clave en cada ejecución.
Rotación y retención de backups
Una estrategia básica de retención puede mantener:
- Diarios: últimos 7 días.
- Semanales: últimas 4 semanas.
- Mensuales: últimos 6 meses.
Herramientas como logrotate o scripts adicionales pueden eliminar automáticamente copias antiguas.
Mejores prácticas
- Pruebas periódicas: restaura datos para validar la integridad.
- Documentación: mantén un registro de la configuración y cambios.
- Monitoreo de espacio: alerta cuando el destino alcance cierto umbral.
- Acceso seguro: restringe usuarios y utiliza autenticación fuerte.
- Versionado: guarda metadatos o utiliza rsnapshot para gestionar snapshots.
Conclusión
La combinación de rsync y cron ofrece una solución sólida y versátil para automatizar copias de seguridad. Con una configuración adecuada y el seguimiento de las mejores prácticas, podrás proteger tus datos con un mínimo esfuerzo y coste. Implementar esta estrategia contribuye directamente a la continuidad del negocio y la tranquilidad del equipo de administración.

Deja una respuesta