Encontranos en redes
BackupsCifradorestic5 min de lectura
Backups cifrados y seguros
Backups con restic, scripts automatizados, almacenamiento offsite, verificación y la regla 3-2-1.
La regla 3-2-1 de backups
- 3 copias de tus datos
- 2 tipos de almacenamiento diferentes
- 1 copia offsite (fuera del servidor)
Instalar restic
restic es una herramienta de backup moderna con cifrado integrado:
bash
sudo apt install -y resticInicializar repositorio
Repositorio local
bash
restic init --repo /mnt/backups/mi-servidorRepositorio en S3 (AWS/Backblaze B2)
bash
export AWS_ACCESS_KEY_ID="tu-access-key"
export AWS_SECRET_ACCESS_KEY="tu-secret-key"
restic init --repo s3:s3.amazonaws.com/mi-bucket-backupsRepositorio en Backblaze B2
bash
export B2_ACCOUNT_ID="tu-account-id"
export B2_ACCOUNT_KEY="tu-account-key"
restic init --repo b2:mi-bucket-backupsrestic te pedirá una contraseña de cifrado. Guardala en un lugar seguro.
Crear backups
bash
# Backup de directorios específicos
restic backup /home /etc /var/www --repo /mnt/backups/mi-servidor
# Excluir archivos
restic backup /var/www --exclude='*.log' --exclude='node_modules' --repo /mnt/backups/mi-servidor
# Backup con tags
restic backup /var/www --tag web --tag produccion --repo /mnt/backups/mi-servidorScript automatizado
bash
#!/bin/bash
# /usr/local/bin/backup.sh
export RESTIC_REPOSITORY="s3:s3.amazonaws.com/mi-bucket-backups"
export RESTIC_PASSWORD_FILE="/root/.restic-password"
export AWS_ACCESS_KEY_ID="tu-key"
export AWS_SECRET_ACCESS_KEY="tu-secret"
# Backup de base de datos
mysqldump -u root --all-databases > /tmp/db-dump.sql
# Ejecutar backup
restic backup /home /etc /var/www /tmp/db-dump.sql --tag automated
# Limpiar dumps temporales
rm /tmp/db-dump.sql
# Retención: mantener 7 diarios, 4 semanales, 6 mensuales
restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune
echo "Backup completado: $(date)"bash
chmod 700 /usr/local/bin/backup.shCron diario a las 2 AM:
bash
0 2 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1Verificar backups
bash
# Listar snapshots
restic snapshots --repo /mnt/backups/mi-servidor
# Verificar integridad
restic check --repo /mnt/backups/mi-servidor
# Verificar con lectura de datos
restic check --read-data --repo /mnt/backups/mi-servidorRestaurar backups
bash
# Restaurar último snapshot completo
restic restore latest --target /tmp/restore --repo /mnt/backups/mi-servidor
# Restaurar un archivo específico
restic restore latest --target /tmp/restore --include '/var/www/config.php' --repo /mnt/backups/mi-servidor
# Restaurar un snapshot específico
restic restore abc123 --target /tmp/restore --repo /mnt/backups/mi-servidorTestear restauración
Hacé restore tests mensuales:
- Restaurá el último backup en un directorio temporal
- Verificá que los archivos estén completos
- Si es una base de datos, importala en un entorno de test
- Documentá el resultado
Recomendaciones
- Nunca guardes la contraseña de restic en el mismo servidor
- Verificá la integridad de los backups semanalmente
- Hacé restore tests mensuales (un backup que no se puede restaurar no sirve)
- Usá almacenamiento offsite (S3, B2) para proteger contra desastres físicos
- Configurá alertas si el backup falla
- Cifrá también los backups de base de datos antes de subirlos
¿Te resultó útil esta guía?