Точка восстановления — процедура и места хранения
Дата: 2026-02-10
Статус: Рекомендуемая практика перед крупными изменениями и для фиксации «удобной» рабочей версии
Назначение
Создать именованную точку восстановления в текущем рабочем состоянии сервера DENKART, чтобы при необходимости быстро вернуться к этой версии (конфиги, контейнеры, код).
Текущая точка восстановления (2026-02-15)
| Параметр | Значение |
|---|---|
| Метка | working-version-2026-02-15 |
| Дата создания | 2026-02-15 |
| Снимок конфигов | config/snapshots/state-working-version-2026-02-15-2026-02-15-234455/ |
| Git-тег | v1.7-working-version-2026-02-15 |
| Восстановление iptables | sudo iptables-restore < config/snapshots/state-working-version-2026-02-15-2026-02-15-234455/iptables.rules |
| Восстановление контейнера | Имя снимка — в MANIFEST.txt внутри снимка; LXD-снимок pre-proxy-20260215-2344 (nginx-reverse-proxy, docs-denkart, BBB-CONT22-1, moodle) |
| Откат кода | git checkout v1.7-working-version-2026-02-15 |
Скрипт save-state сохраняет конфиги и создаёт LXD-снимки для контейнеров: nginx-reverse-proxy, docs-denkart, BBB-CONT22-1, moodle.
Предыдущие точки восстановления
Рабочая версия (2026-02-14)
| Параметр | Значение |
|---|---|
| Метка | working-version-2026-02-14 |
| Снимок конфигов | config/snapshots/state-working-version-2026-02-14-* |
| Git-тег | v1.6-working-version-2026-02-14 |
Промежуточная рабочая версия (2026-02-12)
| Параметр | Значение |
|---|---|
| Метка | intermediate-working-moodle-lms-2026-02-12 |
| Описание | Moodle 4.5 lms.cdto.life введён в эксплуатацию, маршрутизация исправлена |
| Снимок конфигов | config/snapshots/state-intermediate-working-moodle-lms-2026-02-12-2026-02-12-053047/ |
| Документ | INTERMEDIATE-WORKING-VERSION-2026-02-12.md |
| LXD-снимок | pre-proxy-20260212-0530 (nginx-reverse-proxy, BBB-CONT22-1, docs-denkart) |
Стабильная точка (2026-02-11)
| Параметр | Значение |
|---|---|
| Метка | stable-restore-point |
| Снимок конфигов | config/snapshots/state-stable-restore-point-2026-02-11-000445/ |
| Отчёт | RESTORE-POINT-REPORT-2026-02-11-000415.md |
| LXD-снимок | pre-proxy-20260211-0004 (nginx-reverse-proxy, BBB-CONT22-1, docs-denkart) |
| Восстановление iptables | sudo iptables-restore < config/snapshots/state-stable-restore-point-2026-02-11-000445/iptables.rules |
| Восстановление контейнера | lxc restore <container> pre-proxy-20260211-0004 |
После коммита и тега в Git откат кода: git checkout <тег> (тег создать по шагу 3 ниже).
Что сохраняется
| Компонент | Где хранится | Восстановление |
|---|---|---|
| Конфиги (iptables, nginx, haproxy, скрипты) | config/snapshots/state-<метка>-<timestamp>/ |
Копирование в целевые каталоги, sudo iptables-restore < .../iptables.rules |
| Снимки LXD контейнеров (nginx-reverse-proxy, docs-denkart, BBB-CONT22-1, moodle) | Внутри LXD (имя: pre-proxy-YYYYMMDD-HHMM или см. MANIFEST.txt) |
lxc restore <container> <snapshot-name> |
| Код и документация | Git (коммит + тег) | git checkout <тег или коммит> |
| Полная копия системы (опционально) | /D/backups/full-backup-YYYYMMDD-HHMMSS/ или копия в именованную папку |
Восстановление по инструкции в backup.md |
Пошаговая процедура
1. Создать точку восстановления (анализ + сохранение состояния)
На хосте выполнить:
cd /home/cdto/DENKART/scripts
sudo ./create-restore-point.sh working-baseline-2026-02-10
Метка может быть любой (например working-baseline-2026-02-10 или pre-upgrade). Скрипт:
- Соберёт в отчёт: список контейнеров LXD, версии компонентов, failed-юниты, ошибки/предупреждения из journal за 24 ч, таймеры бэкапов, доступность доменов.
- Вызовет
save-state-before-migration.shс этой меткой (конфиги + LXD-снимки). - Запишет отчёт в
docs/operations/RESTORE-POINT-REPORT-<timestamp>.md.
2. Просмотреть отчёт и логи
less /home/cdto/DENKART/docs/operations/RESTORE-POINT-REPORT-*.md
При необходимости устранить критические ошибки в логах до того, как считать эту точку «эталонной».
На что обращать внимание в отчёте: нулевое число failed-юнитов (раздел 3) и доступность всех трёх доменов (раздел 7) — хорошие признаки. Записи уровня err в journal (раздел 4) могут включать: OOM (нехватка памяти), сбои gnome-keyring/gdm (рабочий стол), ошибки post-install linux-headers (известная проблема, см. docs/troubleshooting), шум SSH — это не обязательно мешает работе серверных приложений (BBB, Cockpit, docs).
3. Закоммитить и создать тег в Git
cd /home/cdto/DENKART
git add -A
git status
git commit -m "Точка восстановления: working-baseline-2026-02-10"
git tag -a v1.7-working-version-2026-02-15 -m "Рабочая версия сервера DENKART, все приложения доступны"
git push origin develop
git push origin v1.7-working-version-2026-02-15
Так можно в любой момент откатить код и документацию: git checkout v1.7-working-version-2026-02-15 (или нужный тег).
4. Полная копия системы (по желанию)
Для быстрого восстановления «всей системы» в образ текущего состояния:
- Вариант A. Запустить полный бэкап (если с последнего прошло ≥ 10 дней, скрипт создаст новый):
bash
sudo /home/cdto/DENKART/scripts/backup-full-server.sh
Результат: /D/backups/full-backup-YYYYMMDD-HHMMSS/.
- Вариант B. Сохранить текущий полный бэкап под именем точки восстановления (чтобы его не затерла ротация):
bash
LAST=$(ls -dt /D/backups/full-backup-* 2>/dev/null | head -1)
if [ -n "$LAST" ]; then
sudo cp -a "$LAST" "/D/backups/restore-point-working-baseline-2026-02-10"
fi
Документация по восстановлению из полного бэкапа: backup.md.
Места хранения (сводка)
| Назначение | Путь |
|---|---|
| Снимок конфигов и манифест | config/snapshots/state-<метка>-<timestamp>/ |
| Отчёт по точке восстановления | docs/operations/RESTORE-POINT-REPORT-<timestamp>.md |
| LXD-снимки | хранятся в LXD, имя см. в MANIFEST.txt внутри снимка конфигов |
| Полный бэкап сервера | /D/backups/full-backup-YYYYMMDD-HHMMSS/ |
| Именованная копия полного бэкапа | /D/backups/restore-point-<метка>-YYYY-MM-DD/ (при ручном копировании) |
| Код/документация | Git, тег вида v1.7-working-version-2026-02-15 |
Быстрый откат к точке восстановления
- Конфиги и сеть: восстановить файлы из
config/snapshots/state-<метка>-<timestamp>/, применить iptables:
sudo iptables-restore < config/snapshots/state-.../iptables.rules - Контейнеры: для каждого контейнера:
lxc restore <container> <snapshot-name>(имя снимка — вMANIFEST.txt). - Код:
git checkout v1.7-working-version-2026-02-15(или нужный тег/коммит). - Полное восстановление системы: по инструкции в backup.md из каталога полного бэкапа.
Ручная проверка логов (при необходимости)
Перед созданием точки восстановления или для углублённого разбора можно выполнить:
# Неуспешно завершившиеся юниты
systemctl list-units --state=failed
# Ошибки в journal за последние 24 часа
sudo journalctl -p err --since "24 hours ago" --no-pager
# Предупреждения за сутки
sudo journalctl -p warning --since "24 hours ago" --no-pager
# Конкретный сервис (например, nginx, backup-full-server)
journalctl -u nginx -n 50 --no-pager
journalctl -u backup-full-server.service -n 50 --no-pager
# Таймеры бэкапов
systemctl list-timers --all | grep -E backup|cleanup