From 0782487b8aeeb26bf5f7da81cd157b790dea6b91 Mon Sep 17 00:00:00 2001 From: hotyue <52734432+hotyue@users.noreply.github.com> Date: Mon, 1 Jun 2026 12:36:12 +0000 Subject: [PATCH] =?UTF-8?q?fix(master):=20=E4=BF=AE=E5=A4=8D=E6=9E=81?= =?UTF-8?q?=E5=BA=A6=E9=9A=90=E8=94=BD=E7=9A=84=E6=AD=A3=E5=88=99=E8=BF=87?= =?UTF-8?q?=E5=BA=A6=E6=B8=85=E6=B4=97=E6=BC=8F=E6=B4=9E=E3=80=82=E6=89=A9?= =?UTF-8?q?=E5=85=85=20agent=5Fip=20=E5=AD=97=E6=AE=B5=E6=AD=A3=E5=88=99?= =?UTF-8?q?=E7=99=BD=E5=90=8D=E5=8D=95=E5=8F=8A=E9=95=BF=E5=BA=A6=E6=88=AA?= =?UTF-8?q?=E6=96=AD=E9=98=88=E5=80=BC=EF=BC=8C=E7=A1=AE=E4=BF=9D=E9=80=97?= =?UTF-8?q?=E5=8F=B7/=E4=B8=8B=E5=88=92=E7=BA=BF=E5=88=86=E9=9A=94?= =?UTF-8?q?=E7=9A=84=E5=A4=9A=E5=AE=BF=E4=B8=BB=E5=BC=B9=E5=8C=A3=E8=83=BD?= =?UTF-8?q?=E5=AE=8C=E6=95=B4=E6=97=A0=E6=8D=9F=E5=85=A5=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- master/tg_master.sh | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/master/tg_master.sh b/master/tg_master.sh index f58a4e2..f8c7589 100755 --- a/master/tg_master.sh +++ b/master/tg_master.sh @@ -92,8 +92,9 @@ call_agent() { local suffix="$4" local res="FAILED" - # 拆解下划线分隔的 IP 列阵 (例如: [2a0b...]_66.181.x.x) - IFS='_' read -r -a ip_array <<< "$ips" + # 将长串中的下划线统一洗回逗号,确保万无一失的弹匣拆解 + local clean_ips=$(echo "$ips" | tr '_' ',') + IFS=',' read -r -a ip_array <<< "$clean_ips" for ip in "${ip_array[@]}"; do if [ -n "$ip" ]; then local url=$(generate_signed_url "$ip" "$port" "$path") @@ -244,7 +245,7 @@ while true; do CHAT_ID=$(echo "$CHAT_ID" | tr -cd '0-9-') AGENT_REGION=$(echo "$RAW_REGION" | tr -cd 'a-zA-Z0-9' | cut -c 1-10) NODE_NAME=$(echo "$RAW_NODE" | tr -cd 'a-zA-Z0-9_.-' | cut -c 1-30) - AGENT_IP=$(echo "$RAW_IP" | tr -cd 'a-zA-Z0-9.:\[\]-' | cut -c 1-50) + AGENT_IP=$(echo "$RAW_IP" | tr -cd 'a-zA-Z0-9.:\[\]-_,' | cut -c 1-150) AGENT_PORT=$(echo "$RAW_PORT" | tr -cd '0-9' | cut -c 1-5) NODE_ALIAS=$(echo "$RAW_ALIAS" | tr -d '"'\''\`\$\|&;<>\n\r' | cut -c 1-30) [ -z "$NODE_ALIAS" ] && NODE_ALIAS="$NODE_NAME" @@ -265,9 +266,10 @@ while true; do # [v4.2.2 容灾对齐] 允许 agent_ip 字段以逗号分隔的形式完整固化多路由通道 db_exec "INSERT INTO nodes (chat_id, node_name, agent_ip, agent_port, last_seen, region, node_alias, enable_ota) VALUES ('$CHAT_ID', '$NODE_NAME', '$AGENT_IP', '$AGENT_PORT', CURRENT_TIMESTAMP, '$AGENT_REGION', '$NODE_ALIAS', '$AGENT_OTA') ON CONFLICT(chat_id, node_name) DO UPDATE SET agent_ip='$AGENT_IP', agent_port='$AGENT_PORT', last_seen=CURRENT_TIMESTAMP, region='$AGENT_REGION', node_alias='$NODE_ALIAS', enable_ota='$AGENT_OTA';" - # 动态人性化回执:在 TG 侧清晰地向管理者展示主备双通道的录入态势 - MAIN_SHOW_IP=$(echo "$AGENT_IP" | cut -d'_' -f1) - BACKUP_SHOW_IP=$(echo "$AGENT_IP" | cut -d'_' -f2-) + # 统一将下划线替换为逗号,再进行格式化输出,兼容您的所有测试版本 + FMT_AGENT_IP=$(echo "$AGENT_IP" | tr '_' ',') + MAIN_SHOW_IP=$(echo "$FMT_AGENT_IP" | cut -d',' -f1) + BACKUP_SHOW_IP=$(echo "$FMT_AGENT_IP" | cut -d',' -f2-) if [ -n "$BACKUP_SHOW_IP" ]; then SHOW_MSG="✅ **司令部确认 (v${MASTER_VERSION})**%0A节点 \`${NODE_ALIAS}\` 档案已录入!%0A🌐 主通讯:\`${MAIN_SHOW_IP}\`%0A📡 容灾备用:\`${BACKUP_SHOW_IP}\`" else