# Настройка автоматического резервного копирования БД ## 🎯 Автоматический бэкап дважды в день Система автоматически создаёт бэкапы 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 ```