29 lines
1.2 KiB
Python
29 lines
1.2 KiB
Python
import json, os
|
|
from datetime import datetime, timezone
|
|
|
|
now = datetime.now(timezone.utc)
|
|
out = []
|
|
for jf, prof in [('/home/hmo/.hermes/profiles/position-analyst/cron/jobs.json', 'pa'),
|
|
('/home/hmo/.hermes/cron/jobs.json', 'default')]:
|
|
d = json.load(open(jf))
|
|
jobs = d if isinstance(d, list) else d.get('jobs', [])
|
|
for j in jobs:
|
|
st = j.get('last_status')
|
|
en = j.get('enabled', True)
|
|
if st == 'error' or not en:
|
|
lr = str(j.get('last_run_at') or '?')[:19]
|
|
err = str(j.get('last_error') or '')[:300].replace('\n', ' | ')
|
|
out.append({
|
|
'profile': prof, 'name': j.get('name'), 'script': j.get('script'),
|
|
'no_agent': j.get('no_agent'), 'status': st, 'enabled': en,
|
|
'last_run': lr, 'schedule': j.get('schedule_display') or str(j.get('schedule')),
|
|
'error': err,
|
|
})
|
|
|
|
print(f"TOTAL problem jobs: {len(out)}\n")
|
|
for o in out:
|
|
flag = 'DISABLED' if not o['enabled'] else 'ERROR'
|
|
print(f"[{flag}] ({o['profile']}) {o['name']}")
|
|
print(f" script={o['script']} no_agent={o['no_agent']} sched={o['schedule']} last={o['last_run']}")
|
|
print(f" err: {o['error'][:250]}")
|
|
print() |