Backups con Restic: cifrados, incrementales y listos para la nube
Una estrategia de backups confiable necesita tres pilares: cifrado, automatización y confianza real en la restauración. Restic ofrece esos tres elementos con una CLI ligera y soporte para múltiples backends.
Esta guía propone una implementación práctica para servidores y equipos pequeños de infraestructura.
1) Instalar Restic
En Ubuntu/Debian:
sudo apt update
sudo apt install restic -y
restic version
2) Configurar credenciales del repositorio
Para ejecución no interactiva, usa variables de entorno:
export RESTIC_REPOSITORY=s3:https://s3.us-east-1.amazonaws.com/my-restic-bucket
export RESTIC_PASSWORD='use-a-strong-passphrase'
export AWS_ACCESS_KEY_ID='...'
export AWS_SECRET_ACCESS_KEY='...'
Para repositorio local:
export RESTIC_REPOSITORY=/backup/restic-repo
export RESTIC_PASSWORD='use-a-strong-passphrase'
Inicializa el repositorio:
restic init
3) Crear el primer snapshot
restic backup /etc /var/www /home
Lista snapshots:
restic snapshots
4) Aplicar política de retención
Ejemplo equilibrado:
restic forget --prune \
--keep-last 10 \
--keep-daily 14 \
--keep-weekly 8 \
--keep-monthly 12
Esta política controla crecimiento sin perder puntos de recuperación útiles.
5) Verificar integridad del repositorio
Chequeo rápido:
restic check --read-data-subset=5%
Chequeo completo periódico:
restic check
6) Prueba de restauración (obligatoria)
Restaura un archivo concreto desde el último snapshot:
restic restore latest --target /tmp/restore-test --include /etc/nginx/nginx.conf
Valida contenido, permisos y tiempos de recuperación.
7) Automatizar con systemd
Servicio /etc/systemd/system/restic-backup.service:
[Unit]
Description=Restic Backup Job
[Service]
Type=oneshot
EnvironmentFile=/etc/restic/env
ExecStart=/usr/bin/restic backup /etc /var/www /home
ExecStartPost=/usr/bin/restic forget --prune --keep-last 10 --keep-daily 14 --keep-weekly 8 --keep-monthly 12
Timer /etc/systemd/system/restic-backup.timer:
[Unit]
Description=Run Restic backup daily
[Timer]
OnCalendar=*-*-* 02:15:00
Persistent=true
[Install]
WantedBy=timers.target
Habilitar timer:
sudo systemctl daemon-reload
sudo systemctl enable --now restic-backup.timer
sudo systemctl list-timers | grep restic
Buenas prácticas operativas
- Guarda contraseña de repositorio en gestor de secretos
- Separa credenciales de backup y credenciales de runtime
- Mantén copia inmutable/offline para ransomware
- Documenta runbook de recuperación por prioridad de sistemas
Conclusión
Restic aporta fundamentos sólidos de protección de datos con complejidad mínima. Si automatizas snapshots, retención, checks y pruebas de restore, obtienes una base de continuidad realmente confiable.
La clave es disciplina operativa: los backups deben ser observables, auditables y restaurables bajo presión.