#!/bin/bash
# backup_databases.sh - Максимально простой скрипт

# Конфигурация
PG_USER="myuser"
PG_PASSWORD="6901"
BACKUP_FILE="/home/crazygnome/db.tar.gz"

# Удаленный сервер
REMOTE_HOST="93.88.205.163"
REMOTE_PORT="4162"
REMOTE_USER="crazygnome"
REMOTE_PATH="/home/crazygnome"

# Маппинг баз
declare -A MAPPING=(
    ["solobot"]="freesurf"
    ["ghostway"]="ghostway"
    ["solobottest"]="testbot"
)

echo "=== Начало бэкапа ==="

# Создаем временную папку
rm -rf /tmp/postgres_backup
mkdir -p /tmp/postgres_backup

# Экспортируем пароль
export PGPASSWORD=$PG_PASSWORD

# Создаем бэкапы
for db in "${!MAPPING[@]}"; do
    echo "Бэкап $db -> ${MAPPING[$db]}..."
    pg_dump -h localhost -p 5432 -U $PG_USER -Fc -b "$db" > "/tmp/postgres_backup/${MAPPING[$db]}.dump" 2>/dev/null
done

# Создаем архив
echo "Создание архива..."
cd /tmp
tar -czf "$BACKUP_FILE" postgres_backup/

# Отправляем на сервер
echo "Отправка на удаленный сервер..."
scp -P $REMOTE_PORT "$BACKUP_FILE" ${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_PATH}/db.tar.gz 2>/dev/null

# Очистка
rm -rf /tmp/postgres_backup
unset PGPASSWORD

echo "=== Бэкап завершен ==="
echo "Локально: $BACKUP_FILE"
echo "Удаленно: $REMOTE_HOST:$REMOTE_PORT $REMOTE_PATH/db.tar.gz"
