Files
zhaopin/scripts/cdp-tunnel.sh
T

44 lines
1.9 KiB
Bash
Raw Normal View History

#!/bin/bash
# cdp-tunnel.sh — 招聘抓取"浏览器工人"守护脚本(跑在 WSL 本机)
# 职责:
# 1. 保证本机 Chrome(CDP 9222, 智联登录态) 存活
# 2. 保证反向隧道 存活: 服务器127.0.0.1:9222 -> 本机9222
# Hermes(服务器, host网络) 通过该隧道驱动本机 Chrome 抓取
# 用法: nohup /www/projects/zc_recruitment-screener/scripts/cdp-tunnel.sh >/tmp/cdp-tunnel.log 2>&1 &
SERVER="xyh@192.168.100.133"
CDP_PORT=9222
UDIR="$HOME/.chrome-recruit-test"
ZHAOPIN_URL="https://rd6.zhaopin.com/app/recommend?jobNumber=CC634000780J40731895116&tab=recommend"
log() { echo "[$(date '+%m-%d %H:%M:%S')] $*"; }
ensure_chrome() {
if curl -s --max-time 3 http://127.0.0.1:$CDP_PORT/json/version >/dev/null 2>&1; then return 0; fi
log "本机Chrome/CDP不可达, 启动..."
google-chrome --remote-debugging-port=$CDP_PORT --user-data-dir="$UDIR" \
--no-first-run --no-default-browser-check --window-size=1400,900 \
"$ZHAOPIN_URL" >/dev/null 2>&1 &
sleep 6
curl -s --max-time 3 http://127.0.0.1:$CDP_PORT/json/version >/dev/null 2>&1 && log "Chrome已启动" || log "Chrome启动失败(手动检查)"
}
ensure_tunnel() {
# 远端端口在听 = 隧道活着
if ssh -o ConnectTimeout=5 -o BatchMode=yes "$SERVER" "ss -tln 2>/dev/null | grep -q '127.0.0.1:$CDP_PORT '" 2>/dev/null; then return 0; fi
log "反向隧道不存在, 重建..."
pkill -f "ssh -f -N -R 127.0.0.1:$CDP_PORT" 2>/dev/null
sleep 1
ssh -f -N -R "127.0.0.1:$CDP_PORT:127.0.0.1:$CDP_PORT" \
-o ServerAliveInterval=15 -o ServerAliveCountMax=3 -o ExitOnForwardFailure=yes \
-o BatchMode=yes "$SERVER" 2>/dev/null
sleep 2
ssh -o ConnectTimeout=5 -o BatchMode=yes "$SERVER" "ss -tln 2>/dev/null | grep -q '127.0.0.1:$CDP_PORT '" 2>/dev/null && log "隧道已建立" || log "隧道建立失败"
}
while true; do
ensure_chrome
ensure_tunnel
sleep 15
done