初始提交: 智联简历筛选系统v10(含Hermes每日自动化层)
- 硬性预筛门槛: 外贸经验必须(仅工作经历匹配), 培养类拦截, 毕业2020-2026, 年龄<=35 - 七维评分+动态阈值+打招呼纪律 - Hermes每日自动化: daily-runner(09:30-18:00)/daily-report/enforce-cutoff/stop-tasks - v10.4: 每累计200人自动刷新页面 - 修正: CDP端口9222(反向隧道), 通知只发私聊(防串台), hr2任务禁用 - WSL端: cdp-tunnel.sh 浏览器工人守护
This commit is contained in:
Executable
+124
@@ -0,0 +1,124 @@
|
||||
#!/bin/bash
|
||||
# 简历筛选系统连通性检查
|
||||
# 用法: bash check-connectivity.sh
|
||||
# 检查:SSH连接(Tailscale)、WiFi信号、两条CDP隧道、Watchdog、batch-runner
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
SSH_HOST="100.64.0.7"
|
||||
SSH_PORT="22"
|
||||
SSH_USER="sshadmin"
|
||||
SSH_CMD="ssh -o ConnectTimeout=5 -o StrictHostKeyChecking=no -p $SSH_PORT $SSH_USER@$SSH_HOST"
|
||||
|
||||
PASS=0
|
||||
FAIL=0
|
||||
WARN=0
|
||||
|
||||
ok() { echo " ✅ $1"; ((PASS++)); }
|
||||
fail() { echo " ❌ $1"; ((FAIL++)); }
|
||||
warn() { echo " ⚠️ $1"; ((WARN++)); }
|
||||
|
||||
echo "═══ 简历筛选系统连通性检查 ═══"
|
||||
echo ""
|
||||
|
||||
# 1. SSH 连接
|
||||
echo "【1】SSH → Windows ($SSH_HOST:$SSH_PORT)"
|
||||
if $SSH_CMD "echo OK" >/dev/null 2>&1; then
|
||||
ok "SSH 连接正常"
|
||||
else
|
||||
fail "SSH 连接失败(Tailscale不通或远端关机)"
|
||||
echo " → 后续检查跳过"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 2. WiFi 信号
|
||||
echo ""
|
||||
echo "【2】WiFi 信号"
|
||||
WIFI_INFO=$($SSH_CMD "netsh wlan show interfaces" 2>/dev/null | grep -E "SSID|Signal|State" || true)
|
||||
if echo "$WIFI_INFO" | grep -qi "connected"; then
|
||||
SIGNAL=$(echo "$WIFI_INFO" | grep -i "signal" | sed 's/.*:\s*//' | tr -d ' %')
|
||||
SSID=$(echo "$WIFI_INFO" | grep -i "SSID" | tail -1 | sed 's/.*:\s*//')
|
||||
echo " SSID: $SSID | 信号: ${SIGNAL:-?}%"
|
||||
if [ "${SIGNAL:-0}" -lt 30 ]; then
|
||||
warn "WiFi 信号极弱(${SIGNAL}%),可能频繁断连"
|
||||
else
|
||||
ok "WiFi 已连接"
|
||||
fi
|
||||
else
|
||||
fail "WiFi 未连接"
|
||||
fi
|
||||
|
||||
# 3. CDP 隧道
|
||||
echo ""
|
||||
echo "【3】CDP 隧道"
|
||||
|
||||
# hr1 Chrome (9223)
|
||||
echo " hr1 Chrome — 隧道端口 9223"
|
||||
if curl -s --connect-timeout 5 http://127.0.0.1:9223/json/version >/dev/null 2>&1; then
|
||||
BROWSER=$(curl -s --connect-timeout 5 http://127.0.0.1:9223/json/version | python3 -c "import sys,json;print(json.load(sys.stdin).get('Browser','?'))" 2>/dev/null || echo "?")
|
||||
TABS=$(curl -s http://127.0.0.1:9223/json/list 2>/dev/null | python3 -c "
|
||||
import sys,json
|
||||
tabs=json.load(sys.stdin)
|
||||
pages=[t for t in tabs if t.get('type')=='page']
|
||||
for t in pages: print(f' {t[\"title\"]} → {t[\"url\"][:80]}')
|
||||
print(f' 共 {len(pages)} 个页面')
|
||||
" 2>/dev/null || echo " (无法读取)")
|
||||
ok "CDP 正常 ($BROWSER)"
|
||||
echo "$TABS"
|
||||
else
|
||||
fail "CDP 不通(隧道断开或Chrome未运行)"
|
||||
fi
|
||||
|
||||
# hr2 Edge (9224)
|
||||
echo " hr2 Edge — 隧道端口 9224"
|
||||
if curl -s --connect-timeout 5 http://127.0.0.1:9224/json/version >/dev/null 2>&1; then
|
||||
BROWSER=$(curl -s --connect-timeout 5 http://127.0.0.1:9224/json/version | python3 -c "import sys,json;print(json.load(sys.stdin).get('Browser','?'))" 2>/dev/null || echo "?")
|
||||
TABS=$(curl -s http://127.0.0.1:9224/json/list 2>/dev/null | python3 -c "
|
||||
import sys,json
|
||||
tabs=json.load(sys.stdin)
|
||||
pages=[t for t in tabs if t.get('type')=='page']
|
||||
for t in pages: print(f' {t[\"title\"]} → {t[\"url\"][:80]}')
|
||||
print(f' 共 {len(pages)} 个页面')
|
||||
" 2>/dev/null || echo " (无法读取)")
|
||||
ok "CDP 正常 ($BROWSER)"
|
||||
echo "$TABS"
|
||||
else
|
||||
fail "CDP 不通(隧道断开或Edge未运行)"
|
||||
fi
|
||||
|
||||
# 4. Watchdog 状态
|
||||
echo ""
|
||||
echo "【4】隧道守护 Watchdog"
|
||||
if ps aux | grep ssh-tunnel-watchdog | grep -v grep >/dev/null 2>&1; then
|
||||
WPID=$(ps aux | grep ssh-tunnel-watchdog | grep -v grep | awk '{print $2}')
|
||||
ok "运行中 (PID $WPID)"
|
||||
if [ -f /tmp/ssh-tunnel-watchdog.pid ]; then
|
||||
echo " PID文件: $(cat /tmp/ssh-tunnel-watchdog.pid)"
|
||||
else
|
||||
warn "无 PID 锁文件(可能是旧版 v1,需重启才能用 v2)"
|
||||
fi
|
||||
else
|
||||
warn "未运行"
|
||||
fi
|
||||
|
||||
# 5. batch-runner 实例
|
||||
echo ""
|
||||
echo "【5】batch-runner 实例"
|
||||
RUNNING=$(ps aux | grep "batch-runner" | grep -v grep || true)
|
||||
if [ -n "$RUNNING" ]; then
|
||||
echo "$RUNNING" | while read -r line; do
|
||||
ok "运行中: $(echo "$line" | grep -oP 'ACCOUNT=\S+' || echo '账号未标注')"
|
||||
done
|
||||
else
|
||||
echo " (无 batch-runner 运行)"
|
||||
fi
|
||||
|
||||
# 汇总
|
||||
echo ""
|
||||
echo "═══ 检查完成 ═══"
|
||||
echo "✅ 通过: $PASS ❌ 失败: $FAIL ⚠️ 警告: $WARN"
|
||||
if [ "$FAIL" -gt 0 ]; then
|
||||
echo "有失败项,修复后再启动筛选。"
|
||||
else
|
||||
echo "连通性正常,可以启动筛选。"
|
||||
fi
|
||||
Reference in New Issue
Block a user