Перейти к содержимому

Резервное копирование

  1. Перейдите в директорию проекта

    Окно терминала
    cd /opt/private-remnawave-telegram-shop-bot
  2. Создайте бекап базы данных

    Окно терминала
    docker compose exec db pg_dump -U postgres postgres > backup_$(date +%Y%m%d_%H%M%S).sql

  1. Остановите бота

    Окно терминала
    docker compose stop bot
  2. Очистите текущую базу данных

    Окно терминала
    docker compose exec db psql -U postgres -c "DROP SCHEMA public CASCADE; CREATE SCHEMA public;"
  3. Восстановите данные из бекапа

    Окно терминала
    docker compose exec -T db psql -U postgres postgres < backup_20251227_141530.sql
  4. Запустите бота

    Окно терминала
    docker compose up -d

Для автоматического создания бекапов по расписанию:

  1. Создайте директорию для бекапов

    Окно терминала
    mkdir -p /opt/private-remnawave-telegram-shop-bot/backups
  2. Создайте скрипт бекапа

    Окно терминала
    nano /opt/private-remnawave-telegram-shop-bot/backup.sh
    #!/bin/bash
    BACKUP_DIR="/opt/private-remnawave-telegram-shop-bot/backups"
    PROJECT_DIR="/opt/private-remnawave-telegram-shop-bot"
    RETENTION_DAYS=14
    cd "$PROJECT_DIR"
    # Создание бекапа
    docker compose exec -T db pg_dump -U postgres postgres > "$BACKUP_DIR/backup_$(date +%Y%m%d_%H%M%S).sql"
    # Удаление старых бекапов
    find "$BACKUP_DIR" -name "backup_*.sql" -type f -mtime +$RETENTION_DAYS -delete
  3. Сделайте скрипт исполняемым

    Окно терминала
    chmod +x /opt/private-remnawave-telegram-shop-bot/backup.sh
  4. Добавьте задачу в cron

    Окно терминала
    crontab -e

    Добавьте строку для ежедневного бекапа в 3:00:

    0 3 * * * /opt/private-remnawave-telegram-shop-bot/backup.sh
ПараметрОписание
BACKUP_DIRДиректория для хранения бекапов
PROJECT_DIRДиректория проекта с compose.yaml
RETENTION_DAYSКоличество дней хранения бекапов

Для проверки целостности бекапа без восстановления:

Окно терминала
# Проверка синтаксиса SQL
head -100 backup_20251227_141530.sql
# Проверка размера файла
ls -lh backup_20251227_141530.sql