AutoBackup DB Postgres из Docker

Orange PI

splinter

Скрипт для создания бэкапов с 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