Ya hablamos de Restic como sustituto de un rsync manual sin versionado ni cifrado. Este tutorial va un paso más allá: no solo hacer un backup suelto, sino dejarlo automatizado con systemd timers para que corra solo, todos los días, sin que tengas que acordarte de lanzarlo tú.
Cómo automatizar tus backups con Restic, paso a paso
Instala Restic
Restic es un único binario, sin dependencias que instalar aparte.
sudo apt install restic
Inicializa el repositorio
Elige dónde van a vivir tus backups — puede ser local, SFTP, o un bucket S3/B2. Este ejemplo usa una ruta local, pero el mismo patrón aplica a cualquier backend.
restic init --repo /mnt/backups/mi-repo
Te pedirá una contraseña de cifrado — guárdala en un gestor de contraseñas, sin ella no puedes recuperar nada.
Guarda la contraseña en un fichero seguro
Para que el backup corra sin intervención manual, Restic necesita leer la contraseña de un fichero en vez de pedirla por terminal.
echo "tu-contraseña-segura" | sudo tee /etc/restic-password sudo chmod 600 /etc/restic-password
El
chmod 600es importante — solo el usuario propietario puede leer ese fichero.Haz tu primer backup a mano
Antes de automatizarlo, confirma que funciona con un backup manual de la carpeta que quieras proteger.
export RESTIC_REPOSITORY=/mnt/backups/mi-repo export RESTIC_PASSWORD_FILE=/etc/restic-password restic backup /home/usuario/datos-importantes
Crea el servicio systemd
Define el backup como una unidad de servicio, no como un cronjob suelto — así puedes ver su estado y logs con las mismas herramientas que el resto de tu sistema.
# /etc/systemd/system/restic-backup.service [Unit] Description=Backup diario con Restic [Service] Type=oneshot Environment=RESTIC_REPOSITORY=/mnt/backups/mi-repo Environment=RESTIC_PASSWORD_FILE=/etc/restic-password ExecStart=/usr/bin/restic backup /home/usuario/datos-importantes
Crea el timer que lo dispara cada día
El timer es lo que decide cuándo se ejecuta el servicio anterior — en este caso, todos los días a las 3 de la madrugada.
# /etc/systemd/system/restic-backup.timer [Unit] Description=Ejecuta el backup de Restic cada día [Timer] OnCalendar=*-*-* 03:00:00 Persistent=true [Install] WantedBy=timers.target
Persistent=truees importante: si el servidor estaba apagado a la hora programada, el backup se lanza en cuanto vuelve a arrancar, en vez de esperar al día siguiente.Activa el timer
sudo systemctl daemon-reload sudo systemctl enable --now restic-backup.timer systemctl list-timers restic-backup.timer
El último comando te confirma cuándo se ejecutará la próxima vez.
Programa la limpieza de versiones antiguas
Sin poda, el repositorio crece indefinidamente. Añade una política de retención razonable — este ejemplo mantiene 7 backups diarios, 4 semanales y 6 mensuales.
restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune
Puedes añadir este comando como un segundo
ExecStarten el mismo servicio, o crear un timer semanal aparte para la poda.
Conclusión
A partir de aquí, tus backups corren solos, con versionado, cifrado y una política de retención que evita que el repositorio crezca sin control. Revisa de vez en cuando con systemctl status restic-backup.timer que sigue corriendo como esperas — la automatización solo es útil si confías en que de verdad está pasando.



