| name | cron-doctor |
| version | 1.1.0 |
| author | Polycat |
| tags | ["cron","monitoring","diagnosis"] |
| license | MIT |
| platform | universal |
| description | Diagnose and triage cron job failures. Checks job states, identifies error patterns, prioritizes by criticality, generates health reports. Triggers on: cron failures, job health check, scheduled task errors, cron diagnosis, job not running, backup failed.
|
Compatible with Claude Code, Codex CLI, Cursor, Windsurf, and any SKILL.md-compatible agent.
Cron Doctor
Diagnose and triage cron job failures.
Usage
When asked to check cron health or diagnose failures:
1. List All Jobs
crontab -l
sudo cat /etc/crontab
ls -la /etc/cron.d/
2. Check Recent Execution
grep CRON /var/log/syslog | tail -50
tail -50 /var/log/cron
log show --predicate 'process == "cron"' --last 1h
grep "your_job_name" /var/log/syslog | tail -20
3. Identify Problems
Error patterns to watch:
"command not found" — Missing executable or PATH issue
"Permission denied" — File/directory permissions wrong
"No such file or directory" — Script path incorrect
"timeout" — Job took too long
"ECONNREFUSED" — Network/service down
"rate limit" — API throttling
- Missing output — Job may not be running at all
4. Triage Priority
| Priority | Criteria |
|---|
| 🔴 Critical | Trading, backup, security jobs |
| 🟠 High | User-facing deliveries |
| 🟡 Medium | Monitoring, research jobs |
| 🟢 Low | Nice-to-have, non-essential |
5. Generate Report
Write to ~/reports/cron-health-YYYY-MM-DD.md:
# Cron Health Report - [DATE]
## Summary
- ✅ Healthy: X jobs
- ⚠️ Warning: X jobs
- ❌ Failed: X jobs
## Failed Jobs
### [Job Name]
- **Error:** [message]
- **Last Success:** [date]
- **Priority:** [level]
- **Fix:** [suggested action]
## Recommendations
1. [Action item]
2. [Action item]
6. Common Fixes
| Error | Fix |
|---|
| Command not found | Use full path to executable, or set PATH in crontab |
| Permission denied | Check file permissions, run chmod +x script.sh |
| No output | Add >> /tmp/job.log 2>&1 to capture output |
| Wrong timezone | Set TZ= in crontab or use system timezone |
| Rate limit | Reduce frequency or add backoff |
7. Debugging Tips
env -i /bin/sh -c 'echo $PATH'
/path/to/your/script.sh
systemctl status cron
launchctl list | grep cron
Escalation
If 3+ critical jobs failed, alert the user immediately.
Verification Gates
Before claiming diagnosis complete: