OffshoreVps
Seguridad25 sept 20266 min de lecturaPor el equipo de OffshoreVps

Copias de seguridad de un VPS con Restic o Borg

Copias de seguridad cifradas y deduplicadas en un segundo servidor: comandos de restic y borg, volcados de bases de datos, retención, programación y prueba de restauración.

Una copia de seguridad que puedes restaurar marca la diferencia entre una tarde molesta y perder un proyecto. La guía básica de copias de seguridad de un VPS explica la idea. Esta va más allá con restic y BorgBackup: dos herramientas que hacen copias cifradas y deduplicadas en un segundo servidor o en almacenamiento de objetos.

Ventana de terminal en un VPS que muestra los comandos usados para hacer copias de seguridad de un VPS con restic o borg, empezando por “sudo apt install -y restic”
El tipo de comandos que ejecutarás en tu servidor en esta guía.

Por qué restic o borg en lugar de copias simples

  • Deduplicación. Solo se almacenan los datos que cambian, así que las instantáneas diarias siguen siendo pequeñas.
  • Cifrado. Los datos se cifran antes de salir de tu servidor.
  • Instantáneas. Puedes restaurar el estado de cualquier día pasado.
  • Verificación. Ambas herramientas pueden comprobar la integridad del repositorio.

Elige una. Restic es sencillo y funciona con muchos tipos de almacenamiento, incluidos SFTP y el compatible con S3. Borg es muy eficiente y funciona por SSH hacia un servidor que tenga borg instalado.

Adónde enviar las copias

Nunca guardes la única copia en el mismo servidor. Usa un segundo VPS en otra ubicación, un bucket compatible con S3 o un storage box. Un VPS pequeño con un disco grande es un destino de copias barato. Consulta los planes VPS.

Restic: configuración

sudo apt install -y restic
export RESTIC_REPOSITORY="sftp:backup@backup.example.com:/srv/restic/myserver"
export RESTIC_PASSWORD_FILE=/root/.restic-pass
restic init

Crea el archivo de contraseña con una contraseña larga y aleatoria y guarda una copia sin conexión. Sin esa contraseña las copias no se pueden restaurar.

restic backup /etc /home /var/www --exclude-caches
restic snapshots
restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune
restic check
Los pasos de esta guía en orden: 1. Por qué restic o borg en lugar de copias simples; 2. Adónde enviar las copias; 3. Restic: configuración; 4. Las bases de datos requieren cuidado; 5. Prográmalo; 6. Prueba una restauración
Los pasos de esta guía, en orden.

Borg: configuración

sudo apt install -y borgbackup
export BORG_REPO="ssh://backup@backup.example.com/srv/borg/myserver"
borg init --encryption=repokey-blake2
borg create --stats --compression zstd ::'{hostname}-{now:%Y-%m-%d}' /etc /home /var/www
borg prune --keep-daily 7 --keep-weekly 4 --keep-monthly 6
borg check

Exporta y guarda la clave del repositorio con borg key export.

Las bases de datos requieren cuidado

No copies archivos de bases de datos en uso. Haz primero un volcado y copia el volcado:

mysqldump --single-transaction --all-databases | gzip > /var/backups/db.sql.gz
sudo -u postgres pg_dumpall | gzip > /var/backups/pg.sql.gz

Prográmalo

Ejecuta la copia desde un temporizador de systemd o cron. Una línea de cron sencilla:

15 3 * * * root /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1

Haz que te avise cuando falle, por ejemplo con un ping de monitorización al final del script.

Prueba una restauración

restic restore latest --target /tmp/restore-test --include /etc/nginx
ls /tmp/restore-test

Prueba una restauración real en una máquina de repuesto de vez en cuando. Una copia que nunca has probado es solo una esperanza.