merge: watchdog agent.log check

This commit is contained in:
知微
2026-07-20 20:56:05 +08:00
4 changed files with 141 additions and 93 deletions
+25
View File
@@ -0,0 +1,25 @@
import json
from datetime import datetime
print('=== pa profile error jobs ===')
d = json.load(open('/home/hmo/.hermes/profiles/position-analyst/cron/jobs.json'))
jobs = d if isinstance(d, list) else d.get('jobs', [])
for j in jobs:
if j.get('last_status') == 'error':
lr = str(j.get('last_run_at') or '?')[:19]
err = str(j.get('last_error') or '')[:120].replace('\n', ' ')
print(f"{j.get('name')} | last={lr} | {err}")
print()
print('=== default profile error jobs ===')
d2 = json.load(open('/home/hmo/.hermes/cron/jobs.json'))
jobs2 = d2 if isinstance(d2, list) else d2.get('jobs', [])
for j in jobs2:
if j.get('last_status') == 'error':
lr = str(j.get('last_run_at') or '?')[:19]
err = str(j.get('last_error') or '')[:120].replace('\n', ' ')
print(f"{j.get('name')} | last={lr} | {err}")
print()
print('当前时间:', datetime.now().strftime('%Y-%m-%d %H:%M'))
print('硬链接修复时间: 2026-07-20 00:53 (周一凌晨)')
+8
View File
@@ -0,0 +1,8 @@
import json
d = json.load(open('/home/hmo/.hermes/profiles/position-analyst/cron/jobs.json'))
jobs = d if isinstance(d, list) else d.get('jobs', [])
targets = ['策略评估-每周', '建议对账-每周', '数据治理-每周', '跨市场背离检测-周末',
'自选股自动重评-周末', 'state.db真空整理-每周', 'Gateway看门狗-知微']
for j in jobs:
if j.get('name') in targets:
print(f"{j['name']}: status={j.get('last_status')} last={str(j.get('last_run_at'))[:19]} err={str(j.get('last_error'))[:90]}")
+15
View File
@@ -0,0 +1,15 @@
import json, subprocess
d = json.load(open('/home/hmo/.hermes/profiles/position-analyst/cron/jobs.json'))
jobs = d if isinstance(d, list) else d.get('jobs', [])
targets = ['策略评估-每周', '建议对账-每周', '数据治理-每周',
'跨市场背离检测-周末', '自选股自动重评-周末', 'state.db真空整理-每周']
for j in jobs:
if j.get('name') in targets:
jid = j.get('id')
print(f"triggering: {j['name']} (id={jid})")
r = subprocess.run(['/home/hmo/hermes-agent/.venv/bin/python', '-m', 'hermes_cli.main',
'-p', 'position-analyst', 'cron', 'run', jid],
capture_output=True, text=True, timeout=30)
out = (r.stdout + r.stderr).strip()[:150]
print(f' -> {out}')