К содержимому

Подготовить S3 для резервных копий ​

Это инструкция для резервных копий, не для рабочих вложений. Вложения подключаются отдельно. Здесь архив сначала создаётся во внешнем смонтированном каталоге, затем зашифрованная копия отправляется в S3. Прямое копирование только в облако без промежуточного назначения этот сценарий не заменяет.

Применимость

Команды backup-config и backup-run относятся к кандидату нового серверного комплекта. Сначала проверьте комплект. Ни настройка rclone, ни публикация этой статьи не добавляют эти команды на действующий сервер.

1. Подготовьте отдельное место в облаке ​

В кабинете вашего провайдера создайте закрытое S3-хранилище для копий и отдельный префикс этой установки. Получите endpoint с HTTPS, регион и отдельные технические ключи. Для загрузки и проверки нужны права записи, чтения и списка объектов в выбранном назначении. Не используйте ключ владельца облачного аккаунта или публичный bucket.

Названия кнопок у провайдеров отличаются. Проверяйте итоговые параметры, а не номер пункта в чужой инструкции. Не смешивайте назначения DEV, STAGE, production и пробного восстановления. Особенности endpoint и ACL приведены в справочнике S3 для rclone.

2. Проверьте rclone на сервере ​

В SSH-терминале выполните rclone version. Если команда отсутствует, установите проверенную версию по официальной инструкции rclone для Linux. Выберите пакет для архитектуры сервера и проверьте подпись/контрольную сумму выпуска. Не обновляйте уже установленную версию вслепую, если её используют другие задания.

Дальнейшие действия выполняйте в административной оболочке sudo -i, как при подготовке сервера. Создайте закрытый каталог и откройте мастер:

sh
mkdir -p /etc/ngensia
chmod 700 /etc/ngensia
umask 077
rclone --config /etc/ngensia/rclone.conf config

Если этот файл уже используется, сначала сохраните его защищённую копию вне сервера. Не удаляйте существующие подключения. В мастере выбирайте варианты по названию, потому что их номера меняются между версиями. Команда config.

3. Добавьте подключение к S3 ​

  1. Выберите новое подключение (New remote) и назовите его backup-s3.
  2. Выберите хранилище S3, затем своего провайдера; если его нет, уточните у него вариант совместимого подключения.
  3. Введите технический ключ и секрет в мастер, регион и HTTPS endpoint из кабинета провайдера. Не вставляйте секреты в командную строку или статью.
  4. Оставьте доступ закрытым. Не включайте публичное чтение, запись или отключение HTTPS. Остальные параметры сверяйте с требованиями провайдера, а не копируйте от другого облака.
  5. Сохраните подключение и вернитесь в меню мастера. Это ещё не зашифрованное назначение NGENSIA.

4. Добавьте шифрование ​

Создайте второе подключение с именем backup-crypt и типом crypt. Оно работает поверх первого:

Вопрос мастераЧто указать
remotebackup-s3:ИМЯ_BUCKET/ПРЕФИКС_УСТАНОВКИ — замените оба обозначения
Шифрование имён файловstandard
Шифрование имён каталоговВключено
Пароль шифрованияОтдельный сильный секрет, не пароль сотрудника NGENSIA
Дополнительная соль / второй парольОтдельное значение; сохраните вместе с ключом шифрования в защищённом месте

Не отключайте шифрование содержимого (no_data_encryption). Сохраните настройки и выйдите из мастера. Как работает обёртка, объясняет руководство crypt.

Файл конфигурации содержит секреты: храните его и сведения для восстановления отдельно от сервера, с ограниченным доступом. Потеря ключа crypt означает невозможность прочитать копии. Для текущего установщика нужен обычный INI-файл с правами 600 или 400: он сам читает секции конфигурации. Не включайте в мастере отдельное шифрование всего config-файла — это другой механизм, который здесь не поддержан.

sh
chmod 600 /etc/ngensia/rclone.conf
rclone --config /etc/ngensia/rclone.conf listremotes

В списке должны быть backup-s3: и backup-crypt:. Не используйте вывод полной конфигурации для скриншота.

5. Подключите назначение к NGENSIA ​

В приватном JSON-файле из статьи Резервное копирование укажите:

json
{
  "directory": "/mnt/ngensia-backup/copies",
  "mount": "/mnt/ngensia-backup",
  "minimumFreeBytes": 1073741824,
  "remote": "backup-crypt:ngensia",
  "rcloneConfig": "/etc/ngensia/rclone.conf"
}

Первые два пути должны вести к уже подключённому внешнему хранилищу и существующему каталогу, не к обычной папке на системном диске. ngensia после двоеточия — подкаталог внутри зашифрованного назначения. Задайте файлу JSON права 600.

В согласованное окно обслуживания выполните команды из каталога проверенного комплекта:

sh
sh ngensia.sh backup-config /etc/ngensia/backup.json
sh ngensia.sh backup-run
sh ngensia.sh backup-status

backup-run останавливает приложение на время согласованного копирования. Успех verified означает, что созданный архив проверен, загружен и сопоставлен со скачанными данными. Это ещё не репетиция восстановления. Только после успешного ручного запуска включайте расписание.

Если проверка не прошла ​

  • Access denied: проверьте ключ и права именно на выбранный bucket/prefix. Не делайте хранилище публичным.
  • Ошибка endpoint или сертификата: проверьте регион, HTTPS и доверенный сертификат. Не отключайте TLS-проверку.
  • Не найден crypt remote: проверьте имя секции, путь к конфигурации и права файла. Прямой backup-s3:… вместо backup-crypt:… штатная проверка отвергнет.
  • Не хватает места: проверьте внешнее назначение; если рабочие вложения тоже в S3 — ещё и место для их промежуточного экспорта на сервере.
  • Копия есть, но приложение недоступно: проверьте состояние. Ошибка локального формирования архива может оставить приложение остановленным.

Перед использованием в production выполните восстановление на отдельном сервере с вашим облаком и сохранённым ключом crypt. Общая инструкция не подтверждает доступность конкретного провайдера, стоимость трафика или восстановление после его аварии.

Сверено с версией 0.9 · редакция 13.10.2026

Документация NGENSIA · Работа, настройка и эксплуатация