uchill/AUTO-BACKUP-SETUP.md

3.1 KiB
Raw Blame History

Настройка автоматического резервного копирования БД

🎯 Автоматический бэкап дважды в день

Система автоматически создаёт бэкапы PROD и DEV БД:

  • 00:00 (полночь)
  • 12:00 (полдень)

📋 Установка

cd /var/www/platform/prod

# Сделать скрипты исполняемыми
chmod +x backup-db-auto.sh setup-cron-backup.sh remove-cron-backup.sh

# Настроить автоматический бэкап
./setup-cron-backup.sh

Проверка

# Проверить, что задача добавлена в cron
crontab -l | grep backup-db-auto

# Должно быть:
# 0 0,12 * * * PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin /var/www/platform/prod/backup-db-auto.sh >> /var/www/platform/prod/backups/cron.log 2>&1

📊 Логи

# Логи автоматических бэкапов
tail -f /var/www/platform/prod/backups/backup.log

# Логи cron (ошибки выполнения)
tail -f /var/www/platform/prod/backups/cron.log

🗂️ Хранение бэкапов

  • Директория: /var/www/platform/prod/backups/
  • Формат файлов: platform_prod_db_YYYYMMDD_HHMMSS.sql.gz
  • Автоочистка: Бэкапы старше 30 дней удаляются автоматически
  • Проверка места: При использовании диска > 80% в лог пишется предупреждение

🔄 Ручной запуск

# Запустить бэкап вручную (для тестирования)
/var/www/platform/prod/backup-db-auto.sh

🗑️ Удаление автоматического бэкапа

# Удалить задачу из cron
./remove-cron-backup.sh

# Или вручную
crontab -l | grep -v backup-db-auto | crontab -

📝 Что делает скрипт

  1. Проверяет, что контейнеры БД запущены
  2. Создаёт бэкапы PROD и DEV БД
  3. Сжимает бэкапы (gzip)
  4. Проверяет размер бэкапов
  5. Удаляет бэкапы старше 30 дней
  6. Логирует все действия
  7. Предупреждает о нехватке места на диске

⚠️ Важно

  • Скрипт работает от пользователя root (нужен доступ к Docker)
  • Бэкапы сохраняются в /var/www/platform/prod/backups/
  • Старые бэкапы (30+ дней) удаляются автоматически
  • При ошибках информация записывается в лог

🔍 Мониторинг

# Посмотреть последние бэкапы
ls -lh /var/www/platform/prod/backups/*.sql.gz | tail -10

# Проверить размер всех бэкапов
du -sh /var/www/platform/prod/backups/

# Посмотреть последние записи в логе
tail -20 /var/www/platform/prod/backups/backup.log