Sistema para gestionar y descargar backups desde DigitalOcean Spaces (S3-compatible).
Contiene las credenciales para conectarse a DigitalOcean Spaces:
- Región: NYC3 (Nueva York)
- Bucket de backups:
s3://sp-backups - Tool: s3cmd
Todas las variables del script están parametrizadas en este archivo:
# Configuración de S3
S3_BUCKET=s3://sp-backups
ENTORNO=production # production, develop, etc.
CONFIG_FILE=./sp-s3-buckets
# Configuración de destino
DESTINO_LOCAL=./backups-recientes
# Configuración de logs
LOG_FILE=./descargar-backups.log
VERBOSITY=INFO # WARNING, INFO, DEBUGModificar la configuración:
# Editar el archivo
nano backup-config.properties
# Cambiar por ejemplo el entorno:
ENTORNO=develop
# Ejecutar el script (usará la nueva configuración)
./download-recent-backups.shEl script funciona con valores por defecto si el archivo no existe.
Descarga automáticamente el backup más reciente de cada cliente desde el bucket S3.
Características:
- Recorre todos los directorios de clientes en
s3://sp-backups/production/ - Identifica el archivo más reciente de cada cliente (por fecha de modificación)
- Descarga cada backup en
./backups-recientes/[cliente]/ - Descarga archivos .backup + .md5 + .txt
- Elimina backups anteriores: Borra automáticamente el backup previo de cada cliente antes de descargar el nuevo
- Valida integridad con MD5: Verifica que el archivo descargado no esté corrupto
- Genera logs detallados en
descargar-backups.log - Muestra progreso con colores y resumen final
- Soporta descarga de cliente específico o todos los clientes
Uso:
# Descargar todos los clientes
./download-recent-backups.sh
# Descargar solo un cliente específico
./download-recent-backups.sh cgm
./download-recent-backups.sh mabiUso con disco externo:
Para guardar los backups directamente en un disco externo, simplemente ejecuta el script desde el disco:
# 1. Copiar el proyecto al disco externo
cp -r /home/raulo/Desarrollo/workspace/repos-varios/bkp-s3 /media/usuario/MiDisco/
# 2. Ejecutar desde el disco externo
cd /media/usuario/MiDisco/bkp-s3
./download-recent-backups.sh solop
# Los backups se guardan en: /media/usuario/MiDisco/bkp-s3/backups-recientes/Opcional - Crear alias para acceso rápido:
# Agregar a ~/.bashrc o ~/.bash_aliases
alias backup-s3='cd /media/usuario/MiDisco/bkp-s3 && ./download-recent-backups.sh'
# Uso:
backup-s3 # Descargar todos
backup-s3 solop # Descargar cliente específicoEstructura de salida:
backups-recientes/
├── cliente1/
│ └── backup-2025-12-22.sql.gz
├── cliente2/
│ └── backup-2025-12-22.tar.gz
└── cliente3/
└── backup-2025-12-22.sql.gz
s3cmdinstalado en el sistema:sudo apt install s3cmd
sp-s3-buckets contiene credenciales sensibles. Asegúrate de:
- No subirlo a repositorios públicos
- Mantener permisos restrictivos:
chmod 600 sp-s3-buckets - No compartir las credenciales
El script soporta dos modos de operación:
- Modo standard: Descarga por nombre de cliente desde estructura predefinida (modo actual)
- Modo s3path: Descarga desde cualquier ruta S3 personalizada
Para descargar backups desde cualquier bucket/ruta S3, editar backup-config.properties:
# Activar modo s3path
DOWNLOAD_MODE=s3path
# Especificar ruta S3 completa
S3_CUSTOM_PATH=s3://mi-otro-bucket/produccion/backups/
# (Opcional) Nombre del subdirectorio de destino
# Si se omite, se extraerá automáticamente del nombre del bucket
CUSTOM_BUCKET_NAME=mi-otro-bucket./download-recent-backups.shLos backups se guardarán en: ./backups-recientes/mi-otro-bucket/
Características:
- Descarga el archivo .backup más reciente de la ruta especificada
- Incluye archivos .md5 y .txt si existen
- Valida integridad MD5
- Elimina backups anteriores automáticamente
Para volver al modo standard (por nombre de cliente):
# Editar backup-config.properties
DOWNLOAD_MODE=standardPara usar modo s3path con ruta personalizada:
# Editar backup-config.properties
DOWNLOAD_MODE=s3path
S3_CUSTOM_PATH=s3://otro-bucket/ruta/completa/Todos los scripts generan logs en descargar-backups.log con timestamps y detalles de cada operación.