"""看完整 worker 启动 + 状态""" import os, paramiko c = paramiko.SSHClient() c.set_missing_host_key_policy(paramiko.AutoAddPolicy()) c.connect("207.57.129.228", port=19717, username="root", password=os.environ["REMOTE_PASS"], timeout=30, allow_agent=False, look_for_keys=False) def run(label, cmd, timeout=30): print(f"\n=== {label} ===") try: si, so, se = c.exec_command(cmd, timeout=timeout) out = so.read().decode(errors="replace") err = se.read().decode(errors="replace") print(out.rstrip()) if err.strip(): print(f"[stderr] {err.rstrip()}") except Exception as e: print(f"[exc] {type(e).__name__}: {e}") # 1) worker 启动 INFO 日志 run("1) worker 启动 INFO 日志", "bash -lc 'cd /srv/news && docker compose logs --tail=80 worker 2>&1 | grep -E \"INFO|ERROR|WARNING\" | grep -v httpx | head -30'") # 2) worker 是否在跑 run("2) worker ps", "bash -lc 'cd /srv/news && docker compose ps worker'") # 3) enrichment_loop 文件确认(我看的是改完的版本吗?) run("3) 服务器 enrichment.py 头部", "bash -lc 'head -10 /srv/news/backend/app/services/llm/enrichment.py.new 2>/dev/null; echo ---; head -10 /srv/news/backend/app/services/llm/enrichment.py'") # 4) 容器内 enrichment.py 第 410-425 行(看是不是新版本) run("4) 容器内 enrichment.py 410-425 行", "bash -lc 'cd /srv/news && docker compose exec -T worker sed -n \"405,435p\" /app/app/services/llm/enrichment.py'") c.close()