Резервное копирование
Текущее состояние
Дата проверки: 2026-01-23
Статус: ✅ Автоматизация настроена и работает
Подробнее: backup-current-status.md - детальный анализ текущего состояния резервного копирования
Краткое резюме:
✅ Автоматизация (Systemd Timers):
- backup-daily.timer - Ежедневно в 02:00 (общий ежедневный бэкап)
- backup-full-server.timer - Ежедневно в 02:00 (полный бэкап сервера)
- backup-postgres.timer - Ежедневно в 03:00 (бэкап PostgreSQL)
- backup-lxd-snapshots.timer - Еженедельно в воскресенье в 04:00 (снапшоты LXD)
- backup-bbb.timer - Ежедневно в 03:00 (бэкап BigBlueButton)
✅ Доступные скрипты:
- backup-full-server.sh - Полное резервное копирование
- backup-postgres.sh - Резервное копирование PostgreSQL
- backup-project.sh - Резервное копирование проекта
- snapshot-before-changes.sh - Снапшоты LXD контейнеров
📁 Места хранения:
- /D/backups/ - основное хранилище бэкапов
- full-backup-YYYYMMDD-HHMMSS/ - полные бэкапы сервера
- bbb/ - бэкапы BigBlueButton
- postgresql/ - бэкапы PostgreSQL
- lxd-snapshots/ - снапшоты LXD контейнеров
- /var/backups/postgresql/ - дампы PostgreSQL (ежедневные)
Последние бэкапы:
- Полный бэкап: 2026-01-22 00:10 (4.9 GB)
- PostgreSQL: 2026-01-23 09:53 (регулярные ежедневные)
- BBB: регулярные ежедневные бэкапы
Стратегия резервного копирования
Что копировать
- Конфигурационные файлы (
/etc/) - Базы данных (PostgreSQL дампы; Moodle — MariaDB в контейнере moodle, см. ниже)
- Файлы веб-сайтов (
/var/www/), в т.ч. moodledata (файловое хранилище Moodle в контейнере moodle) - Пользовательские данные
- Логи (опционально)
Частота копирования
- Ежедневно: базы данных и конфигурации
- Еженедельно: полный бэкап
- Ежемесячно: архивные копии
Резервное копирование баз данных
PostgreSQL
# Создание дампа
sudo -u postgres pg_dump mydb > backup_$(date +%Y%m%d).sql
# Восстановление
sudo -u postgres psql mydb < backup_20240115.sql
Автоматический скрипт
См. scripts/backup-postgres.sh
Moodle (контейнер moodle)
- БД: MariaDB, база
moodle. Дамп:lxc exec moodle -- mysqldump -u moodle -p moodle > /D/backups/moodle/moodle_db_$(date +%Y%m%d).sql(пароль из /root/moodle_db_password.txt в контейнере). - Файлы: каталог moodledata (путь в config.php Moodle, обычно
/var/www/moodledata):lxc exec moodle -- tar czf - -C /var/www moodledata | cat > /D/backups/moodle/moodledata_$(date +%Y%m%d).tar.gz. - Включить в регламент ежедневного или еженедельного бэкапа по решению проекта. Чек-лист: moodle-phase7-postinstall-checklist.md.
Резервное копирование файлов
Конфигурации
sudo tar -czf config-backup-$(date +%Y%m%d).tar.gz /etc/nginx /etc/postgresql
Веб-сайты
sudo tar -czf www-backup-$(date +%Y%m%d).tar.gz /var/www/
Хранение резервных копий
Локальное хранилище
- Директория:
/backup/или/var/backups/ - Ротация: хранение последних 7 дней ежедневных, 4 недель еженедельных
Удаленное хранилище
- Облачное хранилище (S3, Google Cloud Storage)
- Другой сервер по SSH
- Внешний диск
Восстановление
Процедура восстановления
- Остановить сервисы
- Восстановить файлы из бэкапа
- Восстановить базы данных
- Проверить конфигурации
- Запустить сервисы
- Проверить работоспособность
Автоматизация
✅ Статус: Автоматическое резервное копирование настроено и работает через Systemd Timers
Настроенные таймеры
Все таймеры активны и включены (enabled):
| Таймер | Расписание | Описание | Статус |
|---|---|---|---|
backup-daily.timer |
Ежедневно в 02:00 | Общий ежедневный бэкап | ✅ Active |
backup-full-server.timer |
Ежедневно в 02:00 | Полный бэкап сервера | ✅ Active |
backup-postgres.timer |
Ежедневно в 03:00 | Бэкап PostgreSQL | ✅ Active |
backup-lxd-snapshots.timer |
Воскресенье в 04:00 | Снапшоты LXD контейнеров | ✅ Active |
backup-bbb.timer |
Ежедневно в 03:00 | Бэкап BigBlueButton | ✅ Active |
Управление таймерами
# Просмотр статуса всех таймеров
systemctl status backup-*.timer
# Просмотр следующего запуска
systemctl list-timers backup-*.timer
# Ручной запуск бэкапа (без ожидания таймера)
sudo systemctl start backup-full-server.service
sudo systemctl start backup-postgres.service
# Просмотр логов последнего выполнения
journalctl -u backup-full-server.service -n 50
journalctl -u backup-postgres.service -n 50
Ретеншн (хранение бэкапов)
- Полные бэкапы: 21 день (автоматическая очистка старых)
- PostgreSQL: Хранятся в
/var/backups/postgresql/(ручная очистка) - BBB: Хранятся в
/D/backups/bbb/ - LXD Snapshots: Хранятся в
/D/backups/lxd-snapshots/
Текущие скрипты резервного копирования
1. Полное резервное копирование сервера
sudo /home/cdto/DENKART/scripts/backup-full-server.sh
Что копирует:
- LXD контейнеры (экспорт)
- Конфигурации LXD (profiles, сети, storage pools)
- Системные конфигурации (network, SSH, firewall)
- Данные проекта DENKART
Где хранится: /D/backups/full-backup-YYYYMMDD-HHMMSS/
Ретеншн: 21 день
2. Резервное копирование PostgreSQL
# Все базы данных
sudo /home/cdto/DENKART/scripts/backup-postgres.sh
# Конкретная база данных
sudo /home/cdto/DENKART/scripts/backup-postgres.sh mydb
Где хранится: /var/backups/postgresql/
Ретеншн: Нет автоматической очистки
3. Резервное копирование проекта
./scripts/backup-project.sh /home/cdto/DENKART
Где хранится: /var/backups/project/
Ретеншн: 7 дней
Заметки
- Последний полный бэкап: 2026-01-06 12:41 (размер: 2.2 GB)
- Следующий шаг: Настроить автоматическое резервное копирование через systemd timers
- Рекомендация: Ежедневные бэкапы баз данных, еженедельные полные бэкапы