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