#!/bin/bash set -e # ----------------------------- # INPUTS # ----------------------------- CONTAINER_NAME="54e" DB_PORT="5432" DB_NAME="mytestdb" # ----------------------------- # VALIDATION # ----------------------------- if [ -z "$CONTAINER_NAME" ] || [ -z "$DB_PORT" ] || [ -z "$DB_NAME" ]; then echo "Usage: $0 " exit 1 fi # ----------------------------- # CONFIG # ----------------------------- PG_USER="postgres" BACKUP_DIR="./backups" DATE_STR=$(date +"%d_%m_%Y") BACKUP_FILE="${DB_NAME}_${DATE_STR}.dump" mkdir -p "$BACKUP_DIR" # ----------------------------- # BACKUP # ----------------------------- echo "Taking custom-format backup (.dump) of '$DB_NAME' from container '$CONTAINER_NAME'..." docker exec "$CONTAINER_NAME" \ pg_dump \ -U "$PG_USER" \ -p "$DB_PORT" \ -Fc \ -Z 6 \ "$DB_NAME" > "$BACKUP_DIR/$BACKUP_FILE" echo "Backup completed successfully:" echo "$BACKUP_DIR/$BACKUP_FILE"