AutoBackup DB Postgres из Docker
Скрипт для создания бэкапов с PG
#!/bin/bash
# Текущая дата для именования файла
DATE=$(date +%Y-%m-%d_%H-%M-%S)
# Директория для сохранения бэкапов
BACKUP_DIR="/my/backups/here"
# Данные для подключения к БД
DB_NAME="db_name"
DB_USER="user_name"
DB_PASSWORD="pass"
CONTAINER_NAME="container_name"
# Путь к файлу бэкапа
BACKUP_PATH="$BACKUP_DIR/$DB_NAME_$DATE.sql"
# Установка пароля для подключения к БД
export PGPASSWORD=$DB_PASSWORD
# Выполнение бэкапа, --clean используется чтобы в дампе присутствовали команды для удаления (DROP) объектов базы данных перед их созданием. Это позволяет избежать ошибок при восстановлении дампа в уже существующую базу данных.
docker exec $CONTAINER_NAME pg_dump -U $DB_USER $DB_NAME --clean > $BACKUP_PATH
# Снятие переменной окружения
unset PGPASSWORD
# Удаление старых бэкапов старше 7 дней
#find $BACKUP_DIR -type f -name "*.sql" -mtime +7 -exec rm {} \;
echo "Backup completed: $BACKUP_PATH"
Команда для восстановления с бэкапа psql -h localhost -U your_db_user -d your_db_name < /path/to/your/backup/file.sql