set -u echo "=== [A] 「解析不出落点」计数与首末时间 ===" journalctl -u dshs --no-pager -o short-iso 2>/dev/null | grep "解析不出落点" | wc -l journalctl -u dshs --no-pager -o short-iso 2>/dev/null | grep "解析不出落点" | head -2 | cut -c1-60 journalctl -u dshs --no-pager -o short-iso 2>/dev/null | grep "解析不出落点" | tail -1 | cut -c1-60 echo "=== [B] dshs 启停边界 ===" journalctl -u dshs --no-pager -o short-iso 2>/dev/null | grep -E "Started|Stopped|Stopping" | tail -6 echo "=== [C] 106 relay-client ===" ssh -o BatchMode=yes -o ConnectTimeout=8 -o StrictHostKeyChecking=no 106.54.21.172 'systemctl is-enabled dshs-relay-client; systemctl show dshs-relay-client -p ActiveState -p ExecMainExitTimestamp --value' 2>&1 | tail -4 echo "=== [D] ensureHosts:hosts 目录来源 ===" grep -n "ensureHosts" -A 45 /opt/dshs/lib/supervisor/remote-spawner.js | head -60