feat(ops): offsite-бэкапы и проверки профилей

- deploy/backup.sh: BACKUP_OFFSITE_TARGET (rsync или rclone:remote:path)
  выгружает готовый архив после локальной ротации; неудача выгрузки только
  предупреждает. Ротация на приёмнике — опционально
  (BACKUP_OFFSITE_KEEP_DAYS, rclone delete --min-age). Имя архива получает
  суффикс, если бэкап запущен дважды в одну секунду.
- deploy/install.sh: offsite-настройки в .env (BACKUP_OFFSITE_TARGET,
  BACKUP_OFFSITE_KEEP_DAYS) отдельным разделом; детектор незаполненных
  плейсхолдеров учитывает цифры в именах (FAIL2BAN_ENABLED); dry-run больше не
  требует прав на /opt/glchat — явность GLCHAT_ETC_DIR фиксируется до
  подключения common.sh, иначе ветка временного каталога была недостижима.
- scripts/test-profiles.sh: сверка таблицы профилей 10.10 и одинакового набора
  PROFILE_* (46 проверок), make profiles-test / ops-test.
- scripts/test-backup.sh: бэкап и offsite на синтетическом инстансе — локальный
  rsync-приёмник, шим rclone, недоступный хост, нечисловой срок (12 проверок),
  make backup-test.
- scripts/test-install.sh: проверка offsite-ключей в .env после установки.
This commit is contained in:
2026-09-22 18:44:50 +03:00
parent af03cfb063
commit 3151327f6e
7 changed files with 407 additions and 6 deletions
+11
View File
@@ -193,6 +193,17 @@ install-dry-run: ## Проверить установщик без измене
install-test: ## Прогон install.sh в чистом контейнере Ubuntu 24.04
bash scripts/test-install.sh
.PHONY: profiles-test
profiles-test: ## Проверить таблицу профилей производительности (AGENT.md 10.10)
bash scripts/test-profiles.sh
.PHONY: backup-test
backup-test: ## Проверить бэкап и offsite-выгрузку на синтетическом инстансе
bash scripts/test-backup.sh
.PHONY: ops-test
ops-test: profiles-test backup-test ## Проверки эксплуатационных скриптов
.PHONY: clean
clean: ## Удалить артефакты сборки
rm -rf $(BUILD_DIR)