Cron Doctor

v1.0.1

Diagnose and triage cron job failures. Checks job states, identifies error patterns, prioritizes by criticality, generates health reports. Triggers on: cron...

0· 1.3k· 2 versions· 7 current· 8 all-time· Updated 1d ago· MIT-0

Install

openclaw skills install cron-doctor

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

# List user's crontab
crontab -l

# List system crontabs
sudo cat /etc/crontab
ls -la /etc/cron.d/

2. Check Recent Execution

# Check cron logs (location varies by system)
# Debian/Ubuntu:
grep CRON /var/log/syslog | tail -50

# RHEL/CentOS:
tail -50 /var/log/cron

# macOS:
log show --predicate 'process == "cron"' --last 1h

# Check for specific job output
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

PriorityCriteria
🔴 CriticalTrading, backup, security jobs
🟠 HighUser-facing deliveries
🟡 MediumMonitoring, research jobs
🟢 LowNice-to-have, non-essential

5. Generate Report

Write to ~/workspace/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

ErrorFix
Command not foundUse full path to executable, or set PATH in crontab
Permission deniedCheck file permissions, run chmod +x script.sh
No outputAdd >> /tmp/job.log 2>&1 to capture output
Wrong timezoneSet TZ= in crontab or use system timezone
Rate limitReduce frequency or add backoff

7. Debugging Tips

# Test cron environment (cron has minimal PATH)
env -i /bin/sh -c 'echo $PATH'

# Verify script runs manually
/path/to/your/script.sh

# Check if cron daemon is running
systemctl status cron   # Linux
launchctl list | grep cron  # macOS

Escalation

If 3+ critical jobs failed, alert the user immediately.

Verification Gates

Before claiming diagnosis complete:

  • All failed jobs listed — none skipped or ignored
  • Priority assigned — based on impact, not just recency
  • Fix suggested — actionable next step for each failure
  • Report written — to ~/workspace/reports/cron-health-YYYY-MM-DD.md
  • Critical failures escalated — 3+ critical = alert user

Version tags

latestvk97cfce7938ja9d0kdxsc97n3d81mx0w