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.
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.
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.