44 lines
967 B
Bash
Executable file
44 lines
967 B
Bash
Executable file
#!/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 <container_name> <port> <db_name>"
|
|
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"
|
|
|