Simplify your crontab entries with crontab.guru
As you’ve seen from my previous posts, I’ve used cron
a lot lately to schedule periodic tasks on my RaspberryPi. cron is driven by crontab
, cron table files, configuration files that specifies shell commands to run periodically on a given schedule.
# ┌───────────── minute (0 - 59)
# │ ┌───────────── hour (0 - 23)
# │ │ ┌───────────── day of month (1 - 31)
# │ │ │ ┌───────────── month (1 - 12)
# │ │ │ │ ┌───────────── day of week (0 - 6) (Sunday to Saturday;
# │ │ │ │ │ 7 is also Sunday on Raspbian)
# │ │ │ │ │
# │ │ │ │ │
# * * * * * command to execute
The timing syntax is understandable enough. In addition to numbers, we can use special operators:
* any value
, value list separator
- range of values
/ step values
An expression to achieve At 22:00 on every day-of-week from Monday through Friday
looks like this:
0 22 * * 1-5
My problem is that I get the elements confused. Without reading the explanation, is 22 in the expression above minute or hour? You have to read the spec to find out.
Or better, use the excellent website crontab.guru. It translates any crontab expression to plain English in real-time. I’ll use this site for all my crontab expressions from now on. Even the expression below is now perfectly understandable!