Скрипт бэкапа PostgreSQL в S3 Object Storage (Selectel, Timeweb, Yandex Cloud)

Обновлено: Август 2026 Стек: PostgreSQL pg_dump, AWS CLI / s3cmd, S3 Storage Проверено: Production-Ready

Bash-скрипт бэкапа базы данных PostgreSQL в S3-совместимое объектное хранилище (Selectel, Timeweb Cloud S3, Yandex Cloud) через aws-cli или s3cmd.

Интерактивный генератор под ваши параметры
Параметры подставляются в код в реальном времени
/root/scripts/backup-postgres-s3.sh
#!/bin/bash
# Бэкап PostgreSQL в S3 хранилище
S3_BUCKET="s3://my-db-backups"
DB_NAME="app_database"
DATE=$(date +"%Y-%m-%d_%H-%M-%S")
FILENAME="pg_${DB_NAME}_${DATE}.dump"

# Создание кастомного бинарного дампа pg_dump
sudo -u postgres pg_dump -Fc ${DB_NAME} > /tmp/${FILENAME}

# Выгрузка в S3
aws --endpoint-url https://s3.timeweb.cloud s3 cp /tmp/${FILENAME} ${S3_BUCKET}/${FILENAME}

# Удаление локального файла
rm -f /tmp/${FILENAME}

Разбор ключевых директив конфигурации

Техническое обоснование директив и их прямое влияние на процессор (CPU), оперативную память (RAM) и дисковый ввод-вывод (NVMe I/O).

Директива / Блок Рекомендуемое значение Зачем нужно и системное влияние (CPU / RAM / I-O)
pg_dump -Fc -Fc (Custom format) Создает сжатый бинарный дамп с поддержкой многопоточного восстановления через `pg_restore -j 4`.
--single-transaction --single-transaction Создает целостный снимок базы данных InnoDB без блокировки рабочих таблиц и остановки пользователей сайта.
find -mtime +14 -delete 14 дней Автоматически удаляет устаревшие архивы резервных копий для предотвращения 100% переполнения диска.
gzip -9 -9 (максимальное) Сжимает SQL-дампы и архивы файлов в 5-7 раз, сокращая сетевой трафик и затраты на хранение в S3.

Рекомендуемые системные требования VDS под этот стек

Расчет минимальной и оптимальной конфигурации виртуального сервера для стабильной работы без сбоев.

Оптимальный сайзинг: 2 vCPU, 4 GB RAM + S3 Бакет
Timeweb Cloud
2 CPU / 4 GB NVMe
Рекомендуемые ресурсы
2 vCPU / 4 GB RAM / 40 GB NVMe
🔷 Selectel
2 vCPU / 4 GB RAM
Рекомендуемые ресурсы
2 vCPU / 4 GB RAM / 40 GB NVMe
🟠 Beget
Turbo 4 GB
Рекомендуемые ресурсы
2 vCPU / 4 GB RAM / 40 GB NVMe

Онлайн-утилиты SysKit для проверки этого сервера

Протестируйте корректность применения конфигурации прямо сейчас в один клик.

Частые ошибки при настройке и их решение (FAQ)

Типовые проблемы вебмастеров и сисадминов при внедрении данной конфигурации.

Как восстановить базу из такого дампа?
Выполните: `pg_restore -d new_db -j 4 /path/to/file.dump`.
Как настроить запуск бэкапа по расписанию в Cron?
Выполните `crontab -e` и добавьте строку: `0 3 * * * /bin/bash /path/to/backup.sh >/dev/null 2>&1` для ежедневного запуска в 03:00 ночи.
Как проверить целостность созданного архива?
Для tar.gz: `tar -tzf archive.tar.gz > /dev/null`, для gzip: `gzip -t backup.sql.gz`. Если команда завершилась без ошибок, архив не поврежден.

Рекомендуемые смежные конфигурации

Дополнительные рецепты и калькуляторы для полной оптимизации данного серверного стека.