Резервное копирование конфигурации и по расписанию
Вся конфигурация Gately хранится в файлах *.json в каталоге конфигурации. Функция резервного копирования упаковывает эти файлы и поддерживает ручное скачивание, запись по расписанию в несколько мест и восстановление с перезаписью из копии. Интерфейс находится в боковой панели: группа «Система» → «Настройки» → вкладка «Резервное копирование и миграция».
Содержимое копии
Резервная копия — это zip-файл со всеми *.json из корня каталога конфигурации (учётная запись, правила модулей, сертификаты, хэши токенов и т. д.). В нём есть хэши паролей, ключи, хэши API-токенов и закрытые ключи сертификатов, поэтому храните копии надёжно. Журналы работы (logs/) и журнал аудита (audit.log) в копию не входят.
Формат имени файла — gately-backup-YYYYMMDD-HHMMSS.zip, у зашифрованной копии — gately-backup-YYYYMMDD-HHMMSS.zip.enc.
Ручное копирование и восстановление
Скачивание копии
Кнопка «Скачать копию» на карточке «Резервная копия конфигурации Gately» скачивает zip с текущей конфигурацией. Вручную скачанные копии не шифруются.
Восстановление
На карточке «Восстановление конфигурации» выберите файл копии, нажмите «Восстановить» и в окне подтверждения введите слово «Восстановить».
- Восстановление перезаписывает всю текущую конфигурацию, лимит размера загружаемого файла — 64 МБ.
- Перед перезаписью текущая конфигурация копируется в папку
backup-времяв каталоге конфигурации (формат времениYYYYMMDD-HHMMSS); после успешного восстановления интерфейс показывает этот путь. - После восстановления Gately перезапускается автоматически.
- В копии обязательно должна быть конфигурация учётной записи; если её нет, восстановление отклоняется.
- Из архива принимаются только
*.jsonв корне zip, не скрытые и с корректным JSON; остальные записи игнорируются. - При выборе файла
.encв интерфейсе появляется поле «Парольная фраза копии»: введите фразу, заданную при создании копии. При неверной фразе или повреждённом файле восстановление завершается ошибкой.
Скачивание и восстановление копий доступны только из сессии входа; API-токены использовать для них нельзя.
Резервное копирование по расписанию
Карточка «Резервное копирование по расписанию» находится ниже на вкладке «Резервное копирование и миграция», включается переключателем в правом верхнем углу. ID модуля — backup, области токена — backup:read и backup:write.
| Параметр | Описание |
|---|---|
| Расписание | Cron-выражение из 5 полей, по умолчанию 0 3 * * * (ежедневно в 03:00); также можно использовать дескрипторы @daily, @weekly и т. п. |
| Хранение | Для каждого назначения хранятся последние N копий, от 1 до 365, по умолчанию 7 |
| Парольная фраза шифрования | Пусто — без шифрования; если задана, создаются копии .zip.enc. Если фраза уже задана, пустое поле означает сохранение прежней |
| Локальный каталог | Переключатель, по умолчанию включён. Запись в папку backups в каталоге конфигурации |
Нажмите «Сохранить настройки», чтобы расписание вступило в силу, а «Создать копию сейчас» запускает копирование немедленно. На карточке показаны время последнего запуска, способ запуска (вручную или по расписанию), время следующего запуска, результат (успех или ошибка) по каждому назначению и число удалённых старых копий. Локальные файлы копий перечислены на карточке и доступны для скачивания.
Назначения копирования
Помимо локального каталога можно добавить несколько удалённых назначений; каждое записывает в одну из точек монтирования раздела «Монтирование хранилищ» (локальный каталог, удалённый WebDAV или общая папка SMB):
| Поле | Описание |
|---|---|
| Название | Обязательно |
| Точка монтирования хранилища | Выберите существующую точку монтирования из раздела «Монтирование хранилищ»; точки только для чтения или отключённые выбрать нельзя |
| Каталог | Подкаталог внутри точки монтирования; пусто — корень |
| Включено | Переключатель |
Если точек монтирования ещё нет, сначала добавьте их в разделе «Монтирование хранилищ». Удаление назначения не удаляет уже записанные копии.
Порядок выполнения
- Упаковывается каталог конфигурации; если задана парольная фраза, выполняется шифрование.
- Запись в локальный каталог (если он включён) и в каждое включённое назначение; во всех местах используется одно и то же имя файла.
- После успешной записи более старые копии в этом месте удаляются согласно числу хранимых. Очистка затрагивает только файлы с именем, начинающимся с
gately-backup-, и расширением.zipили.zip.enc; остальные файлы остаются нетронутыми. - Результаты сводятся, записываются в журнал модуля и публикуются как событие уведомления.
Если не включены ни локальный каталог, ни одно назначение, копирование считается неудачным. В один момент выполняется только одно копирование.
События уведомлений
| Событие | Уровень | Условие срабатывания |
|---|---|---|
backup.done | Информация | Запись во все места прошла успешно; в сообщении указаны имя файла и результаты по каждому месту |
backup.failed | Ошибка | Не удалась упаковка или запись в любое из мест; в сообщении указан результат по каждому месту |
Создайте в Центре уведомлений правило с подпиской на backup.*, чтобы получать результаты копирования через Telegram, почту и другие каналы.
Шифрование
Если задана парольная фраза, копия шифруется следующим образом:
- Выработка ключа: scrypt (N=32768, r=8, p=1), на выходе 32-байтовый ключ, соль — 16 случайных байт.
- Шифрование: AES-256-GCM, nonce — 12 случайных байт.
- Формат файла: последовательно объединены магическое число
GATELYBK1, соль, nonce и шифротекст; магическое число одновременно служит дополнительными аутентифицируемыми данными (AAD) GCM.
Парольная фраза хранится только в файле backup.json в каталоге конфигурации; если фраза утеряна, копию расшифровать невозможно.
Внимание
Если backup.json и файлы копий лежат на одной машине, защита парольной фразой малоэффективна. Рекомендуется записывать зашифрованные копии в точку монтирования на другом устройстве, а парольную фразу хранить отдельно.