Un archivo de configuración eliminado o reemplazado demasiado rápido puede poner un servicio en el mal estado. Con Restic, la trampa consiste en restaurar directamente en la ruta activa. Primero recupera el archivo en un directorio de prueba, luego compáralo antes de cualquier copia.
El método parte de un repositorio ya inicializado y accesible con las credenciales habituales. Se dirige a un archivo específico, por ejemplo /etc/mi-servicio/config.ini, y deja la versión actualmente utilizada intacta hasta que el control haya finalizado.

Identificar el snapshot y la ruta a recuperar
Define el repositorio con las mismas variables o el mismo archivo de entorno que tu copia de seguridad. Evita pegar la contraseña del repositorio en el historial de Bash. Si el servicio Restic ya está funcionando en un script o una unidad systemd, utiliza su mecanismo de autenticación en lugar de crear uno nuevo para la restauración.
Comienza por listar los snapshots que contienen la ruta deseada:
export RESTIC_REPOSITORY=/srv/restic-repo
restic snapshots --path /etc/mi-servicio/config.ini
La salida muestra los identificadores, la fecha, el host y las rutas respaldadas. Elige un identificador específico en lugar de latest si varias máquinas o varias copias de seguridad pueden contener este archivo. En este ejemplo, reemplaza 8f3a1c2d con el identificador elegido.
SNAPSHOT=8f3a1c2d
restic ls "$SNAPSHOT" --path /etc/mi-servicio/config.ini
restic ls confirma la ruta presente en el archivo antes de escribir nada. Si ningún resultado coincide, detente ahí. Una ruta mal escrita o un snapshot tomado después del incidente no será reparado por una segunda restauración.
Restaurar en un directorio de prueba
Crea un directorio reservado para el control. No debe ser un punto de montaje de producción ni la carpeta del servicio afectado:
sudo install -d -m 0700 /srv/restore-restic-test
restic restore "$SNAPSHOT"
--target /srv/restore-restic-test
--include /etc/mi-servicio/config.ini
Restic recrea la estructura bajo el destino. Por lo tanto, el archivo restaurado se encuentra aquí:
/srv/restore-restic-test/etc/mi-servicio/config.ini
Este directorio separado evita sobrescribir /etc/mi-servicio/config.ini durante la prueba. Es la elección a mantener para un archivo de servicio, una clave de configuración o una base exportada. Una restauración directa en la raíz transforma un error de snapshot en un incidente de producción.
Comparar el archivo antes de volver a ponerlo en servicio
Verifica primero los permisos, el tamaño y las diferencias. El comando diff no modifica ningún archivo:
sudo stat /etc/mi-servicio/config.ini
sudo stat /srv/restore-restic-test/etc/mi-servicio/config.ini
sudo diff -u
/etc/mi-servicio/config.ini
/srv/restore-restic-test/etc/mi-servicio/config.ini
Un diff sin salida retorna el código 0: los dos contenidos son idénticos. Si muestra líneas eliminadas y añadidas, léelas antes de decidir. Una dirección antigua, un puerto o un secreto expirado puede ser exactamente la razón por la cual el archivo ha cambiado.
Cuando la copia restaurada es la correcta, primero respalda la versión activa, luego reemplázala en una corta ventana de mantenimiento. Luego verifica la sintaxis y el estado del servicio con los comandos adecuados para tu software, por ejemplo systemctl status mi-servicio y el registro asociado.
El control de restauración merece el mismo cuidado que una copia de seguridad. La guía BorgBackup aplica la misma lógica con una extracción fuera de producción. Para encontrar una ruta antes de lanzar Restic, el comando find en Linux evita restaurar un archivo homónimo en el lugar equivocado.
Cuándo no restaurar un solo archivo
Un archivo aislado es suficiente para una configuración eliminada o una versión sobrescrita. No siempre es suficiente para una aplicación que distribuye su estado entre una base de datos, archivos y un registro de transacciones. En este caso, restaura un conjunto coherente en una VM o un directorio aislado, y luego valida el procedimiento con el servicio detenido o una copia de prueba.
La documentación de Restic sobre la restauración describe la focalización por snapshot, ruta y directorio de destino. Mantén el directorio de prueba hasta la verificación final. Su eliminación después de la validación no afecta el repositorio de Restic ni el archivo activo.