OffshoreVps
Seguridad8 oct 20268 min de lecturaPor el equipo de OffshoreVps

Cómo hacer copias de seguridad de un VPS con restic: automatizadas y cifradas

La regla 3-2-1, qué copiar, una configuración de restic cifrada, un script de cron y por qué debes probar una restauración. Las instantáneas del proveedor no bastan.

Un VPS puede fallar, borrarse por error o romperse por una mala actualización. La única protección es una copia de seguridad que hayas probado. Esta guía configura copias de seguridad sencillas, automatizadas y cifradas con herramientas gratuitas.

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

La regla 3-2-1

Mantén 3 copias de tus datos, en 2 tipos distintos de almacenamiento, con 1 copia en otro lugar por completo. Para un VPS eso suele significar los datos en vivo, una instantánea local y una copia externa en otro proveedor o en otro país.

Qué copiar

  • Archivos del sitio web y subidas (/var/www).
  • Bases de datos, volcadas primero a un archivo (nunca copies archivos de bases de datos en uso).
  • Configuración: /etc/nginx, cambios en /etc, archivos Docker Compose y volúmenes.
  • Tareas cron y cualquier script personalizado.

Puedes reinstalar el sistema operativo en minutos. Lo que no puedes reinstalar son tus datos y tus ajustes.

Usa restic para copias cifradas y deduplicadas

sudo apt install -y restic
export RESTIC_REPOSITORY=sftp:backup@other-server:/backups/vps1
export RESTIC_PASSWORD_FILE=/root/.restic-pass
restic init

Crea el archivo de contraseña con una cadena larga y aleatoria y guarda una copia en un lugar seguro. Si pierdes esta contraseña, las copias no se pueden abrir. restic también admite almacenamiento compatible con S3, así que puedes enviarlas a cualquier almacén de objetos.

Los pasos de esta guía en orden: 1. La regla 3-2-1; 2. Qué copiar; 3. Usa restic para copias cifradas y deduplicadas; 4. Un script de copia de seguridad; 5. Prueba una restauración; 6. Las instantáneas ayudan, pero no bastan
Los pasos de esta guía, en orden.

Un script de copia de seguridad

#!/bin/bash
set -e
export RESTIC_REPOSITORY=sftp:backup@other-server:/backups/vps1
export RESTIC_PASSWORD_FILE=/root/.restic-pass

mysqldump --single-transaction --all-databases | gzip > /var/backups/db.sql.gz
restic backup /var/www /etc /var/backups/db.sql.gz
restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune

Guárdalo como /usr/local/bin/backup.sh, hazlo ejecutable y prográmalo:

sudo chmod +x /usr/local/bin/backup.sh
echo "30 3 * * * root /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1" | sudo tee /etc/cron.d/backup

Prueba una restauración

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

Una copia que nunca has restaurado es solo una esperanza. Prueba una vez por trimestre y siempre después de cambiar algo.

Las instantáneas ayudan, pero no bastan

Las instantáneas del proveedor son rápidas y útiles antes de cambios arriesgados, pero viven en el mismo proveedor y la misma cuenta. Trátalas como una comodidad y mantén una copia externa independiente.