feat(ops): проверка бэкапа и уборка файлов без записи
- glchat verify-backup: расшифровка age, integrity_check, foreign_key_check, схема и состав данных, сверка с манифестом; живые данные не трогает - чистка удаляет файлы на диске, у которых не осталось записи в базе (так оставались вложения удалённых серверов), и пустые подкаталоги; работает через os.Root, чтобы символическая ссылка не вывела за каталог файлов - удаление сервера теперь чистит и содержимое файлов, а не только записи - install.sh пишет значения .env с пробелами в кавычках: файл подключается через `set -a && . .env`, иначе имя главного сервера выполнялось как команда - тесты: Go на уборку файлов без записи (свежие не трогаются, пустые каталоги удаляются)
This commit is contained in:
@@ -18,6 +18,7 @@ glchat — управление инстансом
|
||||
glchat restart [service] перезапуск стека или сервиса
|
||||
glchat backup бэкап БД и файлов (age-шифрование)
|
||||
glchat restore <файл> восстановление из бэкапа
|
||||
glchat verify-backup <файл> проверить бэкап, не трогая данные
|
||||
glchat update [--channel X] обновление (бэкап → pull → up → smoke)
|
||||
glchat reset-password <email> сброс пароля пользователя (фаза 1)
|
||||
glchat make-admin <email> выдать права инстанс-админа (фаза 1)
|
||||
@@ -151,6 +152,17 @@ cmd_version() {
|
||||
[ -f "$ENV_FILE" ] && grep -E '^(APP_VERSION|IMAGE_TAG|DOMAIN|PROFILE)=' "$ENV_FILE" || true
|
||||
}
|
||||
|
||||
# cmd_verify_backup проверяет архив бэкапа: расшифровка, целостность базы и
|
||||
# состав данных (AGENT.md 10.8).
|
||||
cmd_verify_backup() {
|
||||
require_stack
|
||||
[ -n "${1:-}" ] || {
|
||||
echo "использование: glchat verify-backup <файл.tar.gz[.age]>" >&2
|
||||
exit 2
|
||||
}
|
||||
GLCHAT_ETC_DIR="${GLCHAT_ETC_DIR}" bash "${GLCHAT_ETC_DIR}/verify-backup.sh" "$@"
|
||||
}
|
||||
|
||||
cmd_reindex() {
|
||||
require_stack
|
||||
${COMPOSE} exec -T app glchat reindex
|
||||
@@ -182,6 +194,7 @@ main() {
|
||||
profile) cmd_profile "$@" ;;
|
||||
security-check) cmd_security_check "$@" ;;
|
||||
reindex) cmd_reindex "$@" ;;
|
||||
verify-backup) cmd_verify_backup "$@" ;;
|
||||
cleanup) cmd_cleanup "$@" ;;
|
||||
change-domain) cmd_change_domain "$@" ;;
|
||||
uninstall) cmd_uninstall "$@" ;;
|
||||
|
||||
Reference in New Issue
Block a user