Skip to content

Latest commit

 

History

History
255 lines (191 loc) · 7.8 KB

File metadata and controls

255 lines (191 loc) · 7.8 KB

💾 Система автоматических бекапов ClientBotManager

Описание

Система автоматически создаёт резервные копии всех данных бота в формате ZIP:

  • Заказы (tickets)
  • Рефералы (referrals)
  • Бонусы (bonuses)
  • Отзывы (reviews)

Бекапы создаются раз в неделю и могут быть восстановлены в один клик через админ-команды.


⚙️ Настройка

Откройте config.py и отредактируйте параметры:

# Включить автоматические бекапы
BACKUP_ENABLED = True

# Интервал создания бекапов (в днях)
BACKUP_INTERVAL_DAYS = 7

# Директория для хранения бекапов
BACKUP_DIR = "backups"

# Сколько бекапов хранить (старые удаляются автоматически)
BACKUP_KEEP_COUNT = 10

Примеры:

  • Бекапы каждый день: BACKUP_INTERVAL_DAYS = 1
  • Бекапы раз в месяц: BACKUP_INTERVAL_DAYS = 30
  • Отключить автоматические бекапы: BACKUP_ENABLED = False

📋 Админ-команды

Все команды работают только для администратора (указанного в ADMIN_USER_ID).

/backup

Создать бекап немедленно

➜ /backup
✅ Бекап создан успешно:
e:\Cursor Project\Бот по заказам\backups\backup_20260201_143025.zip

/backup_list

Показать список всех доступных бекапов

➜ /backup_list

📂 Список бекапов:

1. backup_20260201_143025.zip
   Размер: 45.3 KB
   Создан: 2026-02-01T14:30:25
   Записей: 12 заказов, 5 отзывов

2. backup_20260125_100000.zip
   Размер: 38.2 KB
   Создан: 2026-01-25T10:00:00
   Записей: 10 заказов, 4 отзыва

После списка появятся кнопки для восстановления из каждого бекапа.

/backup_settings

Показать текущие настройки бекапов

➜ /backup_settings

⚙️ Настройки автоматического бекапа:

Включено: ✅
Интервал: 7 дней
Директория: backups
Хранить бекапов: 10 шт.

Последний бекап: 2026-02-01 14:30:25
Следующий бекап: 2026-02-08 14:30:25

💡 Для изменения настроек отредактируйте файл config.py

🔄 Восстановление данных

Способ 1: Через кнопки (рекомендуется)

  1. Отправьте команду /backup_list
  2. Нажмите кнопку нужного бекапа
  3. Подтвердите восстановление кнопкой "✅ Да, восстановить"
  4. Готово! Все данные загружены из бекапа

Способ 2: Вручную

  1. Откройте архив из папки backups/
  2. Достаньте data.json
  3. Просмотрите содержимое
  4. Перенесите данные вручную

📁 Структура бекапа

backup_20260201_143025.zip
├── data.json          # Все данные (заказы, рефералы, бонусы, отзывы)
└── metadata.json      # Метаинформация

Примеры файлов:

data.json:

{
  "tickets": {
    "123456789": {
      "order_123": {
        "order_id": "order_123",
        "user_id": 123456789,
        "timestamp": "2026-02-01T10:00:00",
        "status": "новый",
        "data": { "fio": "Иван Иванов", "idea": "Бот для продаж" }
      }
    }
  },
  "referrals": { "123456789": [987654321, 111111111] },
  "bonuses": { "123456789": 500 },
  "reviews": [
    { "author": "Иван", "text": "Отличный бот!" }
  ]
}

metadata.json:

{
  "created_at": "2026-02-01T14:30:25",
  "backup_version": "1.0",
  "records_count": {
    "tickets": 12,
    "referrals": 5,
    "bonuses": 3,
    "reviews": 8
  }
}

🔐 Безопасность

⚠️ Важно:

  • Бекапы содержат все данные пользователей (заказы, контакты)
  • Храните бекапы в безопасном месте
  • Ограничьте доступ к папке backups/
  • На сервере используйте правильные разрешения файлов

На Linux сервере:

chmod 700 ~/clientbotmanager/backups
chmod 600 ~/clientbotmanager/backups/*.zip

📊 Что сохраняется

Данные Сохраняется Восстанавливается
Заказы (tickets)
Рефералы
Бонусы
Отзывы
Метаданные ℹ️ Для информации

🐛 Возможные проблемы

Бекап не создаётся

  • Проверьте, что BACKUP_ENABLED = True в config.py
  • Убедитесь, что папка backups/ доступна для записи
  • Проверьте логи бота

Ошибка при восстановлении

  • Убедитесь, что вы администратор (установлен верный ADMIN_USER_ID)
  • Проверьте целостность файла бекапа
  • Попробуйте создать новый бекап и восстановиться из него

Занимает много места

  • Уменьшите BACKUP_KEEP_COUNT в config.py
  • Удалите старые бекапы вручную из папки backups/
  • Сжимаемые данные (ZIP) обычно занимают 2-5 МБ

🎯 Рекомендации

  1. Еженедельный бекап — оптимальный интервал для большинства ботов
  2. Ежедневные бекапы — если много активности (>100 заказов/день)
  3. Контрольный бекап — перед крупными обновлениями
  4. Архивирование — копируйте старые бекапы в облако (Google Drive, Dropbox)

📝 Примеры использования

Еженедельный бекап в четверг

BACKUP_ENABLED = True
BACKUP_INTERVAL_DAYS = 7
BACKUP_KEEP_COUNT = 20  # Храним за 5 месяцев

Ежедневный бекап высоконагруженного бота

BACKUP_ENABLED = True
BACKUP_INTERVAL_DAYS = 1
BACKUP_KEEP_COUNT = 30  # Храним месячную историю

Отключить автоматические бекапы (только ручные)

BACKUP_ENABLED = False
# Используем: /backup, /backup_list, /backup_settings

🚀 На сервере

Система бекапов полностью интегрирована в systemd-сервис:

  • Бекапы создаются даже если вы не в сети
  • При перезагрузке сервера бекапы продолжают работать
  • Логи бекапов видны в: journalctl -u clientbotmanager

Проверить статус:

sudo systemctl status clientbotmanager
journalctl -u clientbotmanager -f  # Следить за логами

Версия: 1.0
Последнее обновление: Февраль 2026