Бэкап postgres sql

#!/bin/bash
# Создаем директорию для бэкапов
BACKUP_DIR="/var/backups/postgres"
rm -rf "$BACKUP_DIR"
mkdir -p "$BACKUP_DIR"
cd "$BACKUP_DIR"
chown postgres "$BACKUP_DIR"

# Получаем список баз данных (исключая системные)
databases=$(sudo -u postgres psql -t -c "SELECT datname FROM pg_database WHERE datistemplate = false AND datname NOT IN ('postgres');" 2>/dev/null)

# Бэкапим каждую базу
for db in $databases; do
    echo "Backing up database: $db"
    sudo -u postgres pg_dump "$db" -f "${db}.sql"
done

echo "Backup completed! Files saved in $BACKUP_DIR"

[ Править ]

@kiranananda