🔐 5 pasos clave para automatizar respaldos seguros con Rclone (con código incluido)
En todo sistema crítico, los respaldos no son una opción: son una obligación. Y cuando se trata de plataformas cloud como Google Drive y Dropbox, necesitamos algo más que copiar y pegar archivos. Por eso, te presento cómo implementamos un control de seguridad automatizado con rclone
, para respaldos periódicos, auditables y eficientes.
✅ Paso 1: ¿Por qué rclone
?
rclone
es una herramienta de línea de comandos que actúa como un “rsync para la nube”. Soporta más de 50 servicios como Google Drive, Dropbox, S3, Azure, entre otros. Permite:
- Sincronización y copiado de archivos
- Cifrado opcional
- Control por filtros
- Automatización por cron o sistema
🧰 Paso 2: Configuración de remotos
Con rclone config
conectamos con Google Drive y Dropbox. Para evitar errores de cuota (Quota exceeded
), creamos un client_id
y client_secret
personalizados desde Google Cloud Console, y los aplicamos a nuestro remote
.
[google-drive_australis_Compliance]
type = drive
client_id = TU_CLIENT_ID.apps.googleusercontent.com
client_secret = TU_CLIENT_SECRET
scope = drive
Para carpetas compartidas, usamos el flag especial:
--drive-shared-with-me
🧩 Paso 3: Script automatizado en Bash
Aquí el script base, que admite opciones inteligentes como:
- Directorios de origen y destino
- Soporte para carpetas compartidas (
shared
) - Modo solo verificación (
check
) - Filtros para copiar solo archivos específicos (por nombre)
#!/bin/bash
if [ $# -lt 1 ] || [ $# -gt 4 ]; then
echo "Uso: $0 <origen> [destino] [shared] [check]"
exit 1
fi
origen="$1"
destino="${2:-$1}"
usar_shared="$3"
modo_check="$4"
dir_origen="google-drive_australis_Compliance:$origen"
dir_destino="dropbox_australis:Backup/2025/$destino"
fecha_hora=$(date +"%Y%m%d_%H%M%S")
log_file="/home/cec/backup_log/log_${destino}_$fecha_hora.txt"
writeLog() {
echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1: $2" | tee -a "$log_file"
}
shared_flag=""
[ "$usar_shared" == "shared" ] && shared_flag="--drive-shared-with-me"
rclone lsd "$dir_origen" $shared_flag &>> "$log_file" || {
writeLog "ERROR" "Origen no accesible: $dir_origen"
exit 1
}
rclone lsd "$dir_destino" &>> "$log_file" || {
rclone mkdir "$dir_destino" && writeLog "INFO" "Destino creado: $dir_destino"
}
if [ "$modo_check" == "check" ]; then
rclone check "$dir_origen" "$dir_destino" $shared_flag --one-way --log-file "$log_file"
exit 0
fi
writeLog "INFO" "Inicia respaldo de archivos log_australis*"
rclone copy "$dir_origen" "$dir_destino" --include "log_australis*" --tpslimit 5 --transfers 2 --checkers 4 -P -vv $shared_flag --log-file "$log_file"
writeLog "INFO" "Fin del respaldo"
🔄 Paso 4: Prevención de errores y validación
Para evitar ejecutar el respaldo equivocado, se agregó una confirmación interactiva:
read -p "¿Estás seguro de ejecutar el respaldo $origen → $destino? [s/N] " confirm
[[ "$confirm" != [sS] ]] && echo "Cancelado." && exit 1
📊 Paso 5: Trazabilidad y monitoreo
Cada ejecución:
- Crea un log con marca de tiempo
- Verifica origen y destino
- Informa errores como cuotas excedidas
- Puede integrarse con
cron
osystemd
para ejecutar periódicamente
Ejemplo para crontab:
0 2 * * * /home/cec/scripts/sync.sh Compliance Compliance shared >> /var/log/respaldo.log
🎯 Resultado
Hemos implementado un control de seguridad robusto y automatizado que permite:
- Resguardar datos clave de forma periódica
- Minimizar errores humanos
- Operar dentro de los límites de la API de Google Drive
- Auditar cada paso del proceso