Оформление
Подготовить 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
- Выберите новое подключение (New remote) и назовите его
backup-s3. - Выберите хранилище S3, затем своего провайдера; если его нет, уточните у него вариант совместимого подключения.
- Введите технический ключ и секрет в мастер, регион и HTTPS endpoint из кабинета провайдера. Не вставляйте секреты в командную строку или статью.
- Оставьте доступ закрытым. Не включайте публичное чтение, запись или отключение HTTPS. Остальные параметры сверяйте с требованиями провайдера, а не копируйте от другого облака.
- Сохраните подключение и вернитесь в меню мастера. Это ещё не зашифрованное назначение NGENSIA.
4. Добавьте шифрование
Создайте второе подключение с именем backup-crypt и типом crypt. Оно работает поверх первого:
| Вопрос мастера | Что указать |
|---|---|
remote | backup-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-statusbackup-run останавливает приложение на время согласованного копирования. Успех verified означает, что созданный архив проверен, загружен и сопоставлен со скачанными данными. Это ещё не репетиция восстановления. Только после успешного ручного запуска включайте расписание.
Если проверка не прошла
- Access denied: проверьте ключ и права именно на выбранный bucket/prefix. Не делайте хранилище публичным.
- Ошибка endpoint или сертификата: проверьте регион, HTTPS и доверенный сертификат. Не отключайте TLS-проверку.
- Не найден crypt remote: проверьте имя секции, путь к конфигурации и права файла. Прямой
backup-s3:…вместоbackup-crypt:…штатная проверка отвергнет. - Не хватает места: проверьте внешнее назначение; если рабочие вложения тоже в S3 — ещё и место для их промежуточного экспорта на сервере.
- Копия есть, но приложение недоступно: проверьте состояние. Ошибка локального формирования архива может оставить приложение остановленным.
Перед использованием в production выполните восстановление на отдельном сервере с вашим облаком и сохранённым ключом crypt. Общая инструкция не подтверждает доступность конкретного провайдера, стоимость трафика или восстановление после его аварии.