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