Skip to content
Эта страница переведена с помощью ИИ и может содержать неточности. Помогите улучшить перевод на GitHub.

Резервное копирование конфигурации и по расписанию ​

Вся конфигурация 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):

ПолеОписание
НазваниеОбязательно
Точка монтирования хранилищаВыберите существующую точку монтирования из раздела «Монтирование хранилищ»; точки только для чтения или отключённые выбрать нельзя
КаталогПодкаталог внутри точки монтирования; пусто — корень
ВключеноПереключатель

Если точек монтирования ещё нет, сначала добавьте их в разделе «Монтирование хранилищ». Удаление назначения не удаляет уже записанные копии.

Порядок выполнения ​

  1. Упаковывается каталог конфигурации; если задана парольная фраза, выполняется шифрование.
  2. Запись в локальный каталог (если он включён) и в каждое включённое назначение; во всех местах используется одно и то же имя файла.
  3. После успешной записи более старые копии в этом месте удаляются согласно числу хранимых. Очистка затрагивает только файлы с именем, начинающимся с gately-backup-, и расширением .zip или .zip.enc; остальные файлы остаются нетронутыми.
  4. Результаты сводятся, записываются в журнал модуля и публикуются как событие уведомления.

Если не включены ни локальный каталог, ни одно назначение, копирование считается неудачным. В один момент выполняется только одно копирование.

События уведомлений ​

СобытиеУровеньУсловие срабатывания
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 и файлы копий лежат на одной машине, защита парольной фразой малоэффективна. Рекомендуется записывать зашифрованные копии в точку монтирования на другом устройстве, а парольную фразу хранить отдельно.

Распространяется по лицензии Apache-2.0.