Бэкап 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"
[ Править ]
