crontab Cheatsheet
Quick reference for scheduling and managing cron jobs with crontab in Linux
Crontab is used to schedule recurring commands and scripts in Linux. This cheatsheet covers cron expression syntax, special strings, common schedules, and crontab management commands.
Cron Format
Use five time fields followed by the command.
| Format | Description |
|---|---|
* * * * * command | min hour day month weekday command |
* | Any value |
, | List of values (for example 1,15) |
- | Range of values (for example 1-5) |
/ | Step values (for example */10) |
Time Fields
Valid ranges for each cron field.
| Field | Allowed Values |
|---|---|
| Minute | 0-59 |
| Hour | 0-23 |
| Day of month | 1-31 |
| Month | 1-12 or JAN-DEC |
| Day of week | 0-7 (0 and 7 are Sunday) or SUN-SAT |
Special Schedule Strings
Shortcuts for common schedules.
| String | Description |
|---|---|
@reboot | Run once at startup |
@yearly | Run once a year (0 0 1 1 *) |
@annually | Same as @yearly (0 0 1 1 *) |
@monthly | Run once a month (0 0 1 * *) |
@weekly | Run once a week (0 0 * * 0) |
@daily | Run once a day (0 0 * * *) |
@midnight | Same as @daily (0 0 * * *) |
@hourly | Run once an hour (0 * * * *) |
Common Schedules
Frequently used cron expressions.
| Schedule | Cron Expression |
|---|---|
| Every minute | * * * * * |
| Every 5 minutes | */5 * * * * |
| Every 15 minutes | */15 * * * * |
| Every hour at minute 0 | 0 * * * * |
| Every day at 02:30 | 30 2 * * * |
| Every weekday at 09:00 | 0 9 * * 1-5 |
| Every Sunday at 03:00 | 0 3 * * 0 |
| First day of month at midnight | 0 0 1 * * |
| Every 6 hours | 0 */6 * * * |
| Every month on day 15 at 06:00 | 0 6 15 * * |
Crontab Management
Create, list, and remove per-user cron jobs.
| Command | Description |
|---|---|
crontab -e | Edit current user’s crontab |
crontab -l | List current user’s crontab |
crontab -r | Remove current user’s crontab |
crontab -u username -l | List another user’s crontab (root) |
crontab -u username -e | Edit another user’s crontab (root) |
crontab file.txt | Install crontab from file |
Command Patterns
Useful patterns for reliable cron jobs.
| Pattern | Description |
|---|---|
*/5 * * * * /path/script.sh | Run script every 5 minutes |
0 2 * * * /path/backup.sh >> /var/log/backup.log 2>&1 | Append stdout/stderr to a log |
0 1 * * * /usr/bin/flock -n /tmp/job.lock /path/job.sh | Prevent overlapping runs |
@reboot /usr/bin/sleep 30 && /path/startup.sh | Run shortly after boot |
MAILTO=\"admin@example.com\" | Send job output by email |
Environment in Cron
Define environment values at the top of crontab.
| Entry | Description |
|---|---|
SHELL=/bin/bash | Use Bash for job execution |
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin | Set explicit command path |
MAILTO=\"\" | Disable cron email |
CRON_TZ=Europe/Skopje | Set timezone for this crontab |
Troubleshooting Checks
Quick checks when jobs do not run.
| Check | Command |
|---|---|
| Validate cron service status | systemctl status cron or systemctl status crond |
| Check cron logs (Debian/Ubuntu) | grep CRON /var/log/syslog |
| Check cron logs (RHEL/Fedora) | grep CROND /var/log/cron |
| Check script permissions | ls -l /path/script.sh |
| Test script manually | /path/script.sh |
Check if @reboot ran | journalctl -u cron --since "today" |
Related Guides
Use these articles for complete cron workflows.
| Guide | Description |
|---|---|
Scheduling Cron Jobs with Crontab | Full guide to creating and managing cron jobs |
How to List Cron Jobs in Linux | View user and system cron jobs |
Cron Jobs Every 5, 10, 15 Minutes | Ready-made recurring interval examples |