uchill/AUTO-BACKUP-SETUP.md

94 lines
3.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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