Por que almacenar los backups de forma remota

Almacenar los respaldos en el mismo servidor que se esta respaldando es una practica peligrosa: si el servidor sufre un fallo de disco, un ataque de ransomware, un incendio fisico en el datacenter, o una suspension de la cuenta por el proveedor, los respaldos locales se pierden junto con los datos originales. La regla 3-2-1 de los respaldos establece: mantener 3 copias de los datos, en 2 tipos de almacenamiento diferentes, con al menos 1 copia en una ubicacion geograficamente diferente al servidor principal.

Opciones de almacenamiento remoto para backups

OpcionCosto aproximadoFacilidad de configuracionRecomendado para
Backblaze B2$0.006/GB/mesMediaBackups grandes y economicos
Amazon S3$0.023/GB/mesMediaIntegracion con el ecosistema AWS
Google Cloud Storage$0.020/GB/mesMediaIntegracion con Google Cloud
Servidor FTP/SFTP propioCosto del servidor secundarioBajaControl total sobre el almacenamiento
Rclone + cualquier nubeCosto del servicio en la nubeMediaFlexibilidad maxima

Configurar backups remotos con rclone

Rclone es una herramienta de codigo abierto que permite sincronizar archivos con mas de 40 proveedores de almacenamiento en la nube diferentes. Es compatible con Amazon S3, Google Drive, Backblaze B2, SFTP, FTP y muchos otros.

# Instalar rclone
curl https://rclone.org/install.sh | sudo bash

# Configurar un nuevo destino remoto (asistente interactivo)
rclone config

# Sincronizar la carpeta de backups al destino remoto
rclone sync /home/backups/ remote:nombre-bucket/servidor1/

# Ver que hay en el destino remoto
rclone ls remote:nombre-bucket/

Script de backup remoto automatico

#!/bin/bash
# Script de backup completo con envio remoto
FECHA=$(date +%Y%m%d_%H%M)
LOCAL_DIR="/home/backups/$FECHA"
mkdir -p $LOCAL_DIR

# Backup de archivos web
tar -czf $LOCAL_DIR/web_$FECHA.tar.gz /var/www/html/

# Backup de base de datos
mysqldump -u root -pPASSWORD --all-databases | gzip > $LOCAL_DIR/db_$FECHA.sql.gz

# Enviar al almacenamiento remoto
rclone copy $LOCAL_DIR remote:mi-bucket/servidor1/$FECHA/

# Eliminar backups locales mayores a 7 dias
find /home/backups -type d -mtime +7 -exec rm -rf {} +

# Eliminar backups remotos mayores a 30 dias
rclone delete remote:mi-bucket/servidor1/ --min-age 30d

echo "Backup completado: $FECHA"

Programar el backup con crontab

# Editar el crontab del root
crontab -e

# Ejecutar el backup todos los dias a las 2:30 AM
30 2 * * * /home/scripts/backup_remoto.sh >> /var/log/backup.log 2>&1
¿Fue útil la respuesta? 0 Los Usuarios han Encontrado Esto Útil (0 Votos)