#!/bin/bash # 部署自适应阈值的 watchdog(只换脚本,不动隧道) set -u RELAY=/root/lanremote-relay cp -a "$RELAY/watchdog.sh" "$RELAY/watchdog.sh.bak.$(date +%s)" echo "════════ 1. 装上(已经是新版了,这里复核)════════" bash -n "$RELAY/watchdog.sh" && echo " 语法 OK" echo " 行数: $(wc -l < "$RELAY/watchdog.sh")" echo " 关键参数:" grep -E '^THRESHOLD=|^THRESHOLD_HEALTHY=|^GRACE=|^MIN_RESTART_GAP=|^BUILT_MIN=' "$RELAY/watchdog.sh" | sed 's/^/ /' echo echo "════════ 2. 预演(当前一切正常,应该无动作)════════" DRY_RUN=1 bash "$RELAY/watchdog.sh" 2>&1 | sed 's/^/ /' echo " (无输出 = 正常)" echo echo "════════ 3. 真跑一次 ════════" bash "$RELAY/watchdog.sh" 2>&1 | sed 's/^/ /' echo " 退出码 $?" echo " 状态文件: $(cat "$RELAY/watchdog.state" 2>/dev/null | tr '\n' ' ')" echo echo "════════ 4. 当前隧道状态(确认没被影响)════════" for port in 20241 20242; do n=$(curl -s --max-time 4 "http://127.0.0.1:$port/metrics" 2>/dev/null \ | grep '^cloudflared_tunnel_ha_connections' | awk '{print $2}') echo " 端口 $port: ${n:-无响应}" done echo echo "════════ 5. 长测进度(确认没被打断)════════" echo " 健康样本: $(wc -l < /root/long2h_health.tsv 2>/dev/null || echo 0)" echo " 轮询: $(wc -l < /root/rp_poll30.tsv 2>/dev/null || echo 0) / 30" echo " 测试进程:" pgrep -af 'rp_long2h|rpp30' | sed 's/^/ /'