fix(core): 回滚之前引入的过度防御逻辑,使用纯净的原版代码覆 盖子模块,配合根目录引导程序的 exec </dev/tty 彻底解决终端污染与 Telegram 报文解析崩溃问题

This commit is contained in:
hotyue
2026-06-03 02:36:44 +00:00
parent 40a41cc9ea
commit 10c0b75ce6
3 changed files with 54 additions and 54 deletions

View File

@@ -1,11 +1,13 @@
#!/bin/bash
# ==========================================================
# 模块名称: build_agent.sh (v4.3.0 Orchestrator)
# 核心功能: Agent 安装业务的总指挥,负责拉取子模块并按序调用逻辑函数
# 模块名称: build_agent.sh (Orchestrator 编排大管家)
# 核心功能: 严格遵循原版 install.sh 判定树时序,实现无损热更新
# ==========================================================
# 1. 定义需要按需加载的子模块清单
# 传递中断引信
trap 'exit 1' INT QUIT TERM
MODULES=(
"env_setup.sh"
"ui_menu.sh"
@@ -13,9 +15,7 @@ MODULES=(
"sys_daemon.sh"
)
echo "⏳ 正在装载底层设施依赖..."
# 2. 从云端拉取所有子模块到沙盒中
# 1. 串行拉取子模块资产
for mod in "${MODULES[@]}"; do
curl -fsSL --connect-timeout 10 --retry 3 "${REPO_RAW_URL}/install/${mod}" -o "${SECURE_TMP}/${mod}"
if [ ! -s "${SECURE_TMP}/${mod}" ]; then
@@ -25,41 +25,39 @@ for mod in "${MODULES[@]}"; do
source "${SECURE_TMP}/${mod}"
done
echo -e "\033[32m✅ 模块装载完毕,正在进入部署流程...\033[0m"
# ==========================================================
# 3. 核心业务编排流 (原版 install.sh 的时序严格执行)
# (注:这些 do_* 函数将在对应的子模块中定义,原汁原味地保留原有逻辑)
# 2. 核心业务原子流 (100% 忠实于原版 install.sh 执行时序)
# ==========================================================
# [模块: env_setup.sh]
do_env_precheck # 靶机架构预检与调度器降级决策
do_fetch_version # 解析运行态版本约束
do_install_deps # 多分支包管理器嗅探与极简系统补全
# [环境预检阶段]
do_env_precheck # 架构预检、系统级诊断 (原版第 26-55 行)
do_fetch_version # 动态解析远端版本约束 (原版第 59-66 行)
do_install_deps # 多分支包管理器嗅探与系统补全 (原版第 70-137 行)
# [模块: ui_menu.sh]
do_fetch_map # 拉取全球节点地图
do_handle_menu # 拦截交互菜单 / 决定是否平滑升级 / 卸载
# [菜单与策略拦截阶段]
do_fetch_map # LBS 地理图谱树预载 (原版第 141-146 行)
do_handle_menu # 区分全新安装、平滑升级与一键卸载 (原版第 149-188 行)
# 如果用户选择了卸载,子模块会直接 exit不会执行后续流程
# [物理清洗阶段]
do_clean_env # 幽灵进程抹除、无损清空与数据保护 (原版第 192-225 行)
# [模块: sys_daemon.sh]
do_clean_env # 安装前的环境纯净度构建与幽灵进程抹除
# [配置生成阶段 (仅限全新安装)]
do_interactive_setup # 逐级锁定战区城市、联控配置、端口探测 (原版第 229-373 行)
# [模块: ui_menu.sh]
do_interactive_setup # 摘取节点信息并构建关联 / 接入 Master 司令部 (仅限全新安装)
# [网络雷达与身份装配阶段]
do_network_probe # 冗余双栈探测、网卡锁、WARP假公网隔离 (原版第 375-430 行)
do_assemble_fallback # 智能多宿主容灾弹匣装填、主键别名分离 (原版第 432-475 行)
do_write_config # 固化本地本地 config.conf 档案 (原版第 477-512 行)
# [模块: net_engine.sh]
do_network_probe # 冗余网络栈探测与多出口智能嗅探
do_assemble_fallback # 智能主副容灾弹药装填 (Multi-IP Fallback)
do_write_config # 远程拉取冷数据并解析固化配置 (仅限全新安装)
do_smooth_migrate # 老节点数据格式迁移兼容机制 (仅限平滑升级)
# [老节点热重载平滑升级阶段 (仅限升级模式)]
do_smooth_migrate # 强行覆写、重铸双栈容灾装甲 (原版第 516-590 行)
# [模块: sys_daemon.sh]
do_deploy_core # 防变砖双缓冲下载执行域 (覆写引擎)
do_inject_daemon # Systemd 原生注入与微内核定时降级兜底
# [核心引擎原子覆写阶段]
do_deploy_core # 双缓冲防变砖下载域、物理覆写核心文件 (原版第 594-620 行)
# [模块: ui_menu.sh]
do_final_report # 部署后首播,打入中枢通信网关及指令态势传递
do_show_summary # 打印结束横幅与开源推广
# [进程守护与首播激活阶段]
do_inject_daemon # Systemd/Alpine 看门狗死循环双重注入 (原版第 622-728 行)
do_final_report # 首播暗号同步、Markdown防断开下划线发送 (原版第 732-793 行)
do_show_summary # 防火墙端口提示、装机量统计、开源 Star 推广 (原版第 795-832 行)
exit 0

View File

@@ -285,13 +285,10 @@ do_final_report() {
else
echo -e "\n📡 正在向指挥部发送注册暗号..."
# 这里的防截断转义是全新安装流程特有的,原版代码就是这么写的
SAFE_COMM_IP_ESC=$(echo "$SAFE_COMM_IP" | sed 's/_/\\_/g')
TEXT_MSG="✨ *IP-Sentinel 部署成功!*
📍 区域:${REGION_NAME}
🌐 养护 IP\`${SAFE_PUBLIC_IP}\`
📡 容灾 IP\`${SAFE_COMM_IP_ESC}\`
📡 容灾 IP\`${SAFE_COMM_IP}\`
🔌 端口:\`${AGENT_PORT}\`
🔑 *请点击下方指令复制并回复给机器人:*