What would be the crontab entry look like for a job that runs on the first day of every third month?
4 Answers
The following will run script on the 1st of Jan, Apr, Jul and Oct at 03:30
30 03 01 Jan,Apr,Jul,Oct * /path/to/script
Alternatively, but less obvious
30 03 01 */3 * /path/to/script
Will run every three months at 03:30 on the 1st of Jan,Apr,Jul and Oct.
-
5+1: I always thought the / notation was the MOST obvious...I use it wherever possible. (Words in the scheduling part of the crontab freak me out...I'd do: "0 0 1 3,6,9,12 * /path/to/script.bash" if I couldn't do /3) Apr 6, 2010 at 14:27
-
11
-
9@warren No it would not. The logic here is more of a mod truth statement. Ex: if(12%3 == 0): run_script(). I thought about this as well! Great question.– GoahnaryDec 28, 2016 at 19:13
-
1@Goahnary I realized that a while after I asked for the clarification, too :)– warrenDec 28, 2016 at 19:15
-
4@warren it really should be a mod operator rather than a division. But oh well ¯_(ツ)_/¯– GoahnaryDec 28, 2016 at 19:17
Wikipedia has a nice explanation about how to configure Cron.
For your specific case you could run a Cron Expression to run every 3 months- obviously change the months to suit your schedule.
0 0 1 JAN,APR,JUL,OCT * /path/to/script.bash
The accepted answer is good, thou I'd use an alternative with simpler numbers and easier to read: https://crontab.guru
0 0 1 */3 *
Read like this: “At 00:00 on day-of-month 1 in every 3rd month.”