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

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

Система автоматически создаёт бэкапы PROD и DEV БД:
- **00:00** (полночь)
- **12:00** (полдень)

## 📋 Установка

```bash
cd /var/www/platform/prod

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

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

## ✅ Проверка

```bash
# Проверить, что задача добавлена в 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
```

## 📊 Логи

```bash
# Логи автоматических бэкапов
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% в лог пишется предупреждение

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

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

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

```bash
# Удалить задачу из 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+ дней) удаляются автоматически
- При ошибках информация записывается в лог

## 🔍 Мониторинг

```bash
# Посмотреть последние бэкапы
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
```
