💾 Archived View for jdrm.info › articulos › backups-con-restic.gmi captured on 2023-12-28 at 15:02:53. Gemini links have been rewritten to link to archived content
-=-=-=-=-=-=-
Recientemente he recibido el encargo de montar un sistema de copias de seguridad y me he lanzado a usar algo ligero mediante restic
Restic es un desarrollo en Rust para la gestión de copias de seguridad. Es un programa que crea copias de seguridad cifradas e incrementales. No es un sistema cliente/servidor y permite usar un montón de servicios de almacenamiento pudiendo usar rclone como administrador de las conexiones. En este ejemplo voy a usar SFTP. En el caso de que queramos usar webDav deberemos gestionar la conexión con rclone. En mi caso todas las pruebas las he realizado sobre un NAS de Synology.
Además de instalar restic debemos asegurarnos de que nuestro usuario puede acceder por SSH al servidor donde vamos a almacenar los bakups. Para ello debemos copiar nuestra llave pública ssh al servidor:
scp -p<puerto> ~/.ssh/id_rsa.pub my-nas-user@my.nas.ip:/var/services/homes/my-nas-user
Y entramos al servidor:
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys rm ~/id_rsa.pub
En restic llaman "repositorio" al lugar donde vamos a guardar un backup. Una vez subamos contenido creará una snapshot.
Para crear un repositorio ejecitamos:
restic -r sftp:my-nas-user@my-nas-ip:/path/destino init
Nos pedirá una contraseña que necesitaremos para administrar este repositorio (incluyendo el poder recuperar los datos, asà que mejor no perderla)
El siguiente paso es hacer el primer backup
restic -r sftp:my-nas-user@my-nas-ip:/path/destino backup /home/usuario/Documentos
Nos pedirá de nuevo la contraseña y veremos información sobre el progreso. Si queremos más información podemos añadir --verbose al comando anterior.
Y ya podemos ver las snapshots que ha creado con el comando
restic -r sftp:my-nas-user@my-nas-ip:/path/destino snapshots
Se hace con el comando
restic -r sftp:my-nas-user@my-nas-ip:/path/destino restore id-bakup --target /tmp/prueba
Un dato curioso es que al restaurar el backup recrea el path completo que se almacenó en el repositorio, por lo que en nuestros ejemplos anteriores nos va a crear el path /tmp/prueba/home/usuario/Documentos.
Como el espacio para las copias de seguridad es limitado restic nos permite indicar el número de copias que queremos guardar. Asà con este comando le vamos a decir que nos guarde sólo 3 snapshots y que nos borre todas las demás:
restic -r sftp:my-nas-user@my-nas-ip:/path/destino restore id-bakup forget --keep-last 3 --prune
Como se puede ver restic no se va a ejecutar de forma periódica. Por eso hay diferentes complementos para poder gestionar de una forma más sencilla los backups.