Cron Expression Explainer
Paste any cron expression and get a plain-English description of when it runs.
Cron Jobs: The Essential Skill for Server Automation
Cron is the Unix/Linux task scheduler that runs commands at specified times — from running backups every night to sending daily email reports, refreshing cache every 15 minutes or archiving logs monthly. Cron expressions look cryptic (0 9 * * 1-5) but follow a simple 5-field pattern. Our Cron Explainer translates any cron expression into plain English and shows exactly when it will next run, eliminating the guesswork from scheduling.
Frequently Asked Questions
What does * * * * * mean in cron? ▼
"* * * * *" means "every minute of every hour of every day". The 5 fields are: minute (0–59), hour (0–23), day of month (1–31), month (1–12), day of week (0–6, Sunday=0). A * in any field means "every value for that field".
How to schedule a cron job to run every day at 9 AM? ▼
Cron expression: 0 9 * * * — This means: minute 0, hour 9, every day, every month, every day of week. To run Monday–Friday only: 0 9 * * 1-5. To run at 9 AM IST (UTC+5:30) on a UTC server: 0 3:30 * * * → 3 30 * * * (3:30 AM UTC = 9:00 AM IST).
What is the difference between cron and crontab? ▼
Cron is the daemon (background service) that runs scheduled tasks. Crontab (cron table) is the configuration file listing the scheduled jobs. Edit your crontab with: crontab -e. View current crontab: crontab -l. System-wide crontabs are in /etc/cron.d/ and /etc/crontab.
How to run a cron job every 15 minutes? ▼
Expression: */15 * * * * — The */ syntax means "every N units". So */15 in the minutes field runs at minutes 0, 15, 30 and 45 of every hour. Similarly, */2 * * * * runs every 2 minutes; 0 */6 * * * runs every 6 hours.
Why is my cron job not running? ▼
Common cron debugging steps: (1) Check crontab format — no extra spaces, correct number of fields, (2) Ensure the script is executable: chmod +x script.sh, (3) Use absolute paths — cron has a minimal $PATH, (4) Check cron logs: /var/log/syslog or journalctl -u cron, (5) Verify the cron service is running: service cron status.