Резервное копирование и аварийное восстановление
RUSEON Core сохраняет все операционные данные (конфигурации камер, учётные записи пользователей, структуру папок, подписки на вебхуки и индекс каталога архива) во встроенной базе данных BadgerDB v4.
В этом руководстве описан процесс создания атомарных резервных копий, настройка автоматических снапшотов по расписанию и процедура восстановления после сбоев.
1. Содержимое резервной копии
- Реестр камер: RTSP-ссылки, ONVIF-параметры, профили потоков и правила записи.
- Безопасность и доступ: Пользователи, хэши паролей, API-токены и роли.
- Организационная структура: Иерархия папок и теги камер.
- Каталог архива: Временные интервалы записей и ссылки на видеофайлы.
(Примечание: Сами видеофайлы fMP4 сохраняются в файловой системе в каталоге /app/recordings и резервируются стандартными средствами файлового копирования или снапшотов файловой системы).
2. Ручное создание резервной копии через ruseon-cli
Создание атомарного дампа базы данных без остановки работающего сервера:
bash
# Создание снапшота базы данных
ruseon-cli backup create \
--config /etc/ruseon/config.yaml \
--output /var/lib/ruseon/backups/ruseon_backup_$(date +%Y%m%d_%H%M%S).bak3. Автоматизация ежедневного бэкапа через Cron
Создайте задание cron в /etc/cron.d/ruseon-backup:
cron
# Запуск бэкапа каждый день в 03:00 UTC и удаление файлов старше 30 дней
0 3 * * * ruseon /opt/ruseon/bin/ruseon-cli backup create --config /etc/ruseon/config.yaml --output /var/lib/ruseon/backups/backup_$(date +\%Y\%m\%d).bak && find /var/lib/ruseon/backups/ -name "backup_*.bak" -mtime +30 -delete4. Процедура аварийного восстановления (Disaster Recovery)
Для восстановления базы данных из снапшота на новом или восстановленном сервере:
bash
# 1. Остановка сервиса RUSEON
sudo systemctl stop ruseon
# 2. Восстановление базы данных из файла снапшота
ruseon-cli backup restore \
--config /etc/ruseon/config.yaml \
--input /var/lib/ruseon/backups/ruseon_backup_20260814.bak
# 3. Запуск сервиса RUSEON
sudo systemctl start ruseon
# 4. Проверка статуса через системную пробу
curl http://localhost:8080/readyz