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.