You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

34 rivejä
1.1 KiB

  1. #!/bin/bash
  2. set -e
  3. # Percorso del file delle variabili d'ambiente
  4. ENV_FILE="/data/conf/presence/res_levis_backend/build/env/db.env"
  5. # Estrazione dinamica della password dal file .env
  6. if [ -f "$ENV_FILE" ]; then
  7. DB_PASSWORD=$(grep -E "^POSTGRES_PASSWORD=" "$ENV_FILE" | cut -d'=' -f2)
  8. else
  9. echo "Errore: File d'ambiente non trovato in $ENV_FILE"
  10. exit 1
  11. fi
  12. # Configurazione percorso di salvataggio del backup sull'host
  13. BACKUP_DIR="/data/conf/presence/res_levis_backend/backupdb"
  14. TIMESTAMP=$(date +"%Y%m%d_%H%M%S")
  15. BACKUP_FILE="${BACKUP_DIR}/presence_db_${TIMESTAMP}.sql.gz"
  16. # Crea la cartella di backup se non esiste
  17. mkdir -p "$BACKUP_DIR"
  18. echo "=========================================="
  19. echo "AVVIO BACKUP DATABASE POSTGRESQL (DINAMICO)"
  20. echo "=========================================="
  21. # Esegue il pg_dump passando la password estratta dal file .env
  22. docker exec -t -e PGPASSWORD="$DB_PASSWORD" db pg_dump -U postgres postgres | gzip > "$BACKUP_FILE"
  23. echo "Backup completato con successo!"
  24. echo "File salvato in: $BACKUP_FILE"
  25. echo "Dimensione file: $(du -sh "$BACKUP_FILE" | cut -f1)"
  26. echo "=========================================="