how to run cron job every 3 months?
91,867
Solution 1
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.
Solution 2
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
Solution 3
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.”
Related videos on Youtube
Comments
-
haim evgi over 1 year
What would be the crontab entry look like for a job that runs on the first day of every third month?
-
Admin over 6 years
-
-
Satanicpuppy about 14 years+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)
-
warren about 8 yearswouldn't
*/3
be every four months (12/3 = 4)? -
Goahnary over 7 years@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.
-
warren over 7 years@Goahnary I realized that a while after I asked for the clarification, too :)
-
Goahnary over 7 years@warren it really should be a mod operator rather than a division. But oh well ¯_(ツ)_/¯
-
bharat almost 5 years@Goahnary So I think it will run on Mar, Jun, Sep, & Dec right rather than in answer: 'Jan,Apr,Jul,Oct'