56

What would be the crontab entry look like for a job that runs on the first day of every third month?

1

4 Answers 4

100

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.

6
  • 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
  • 12
    wouldn't */3 be every four months (12/3 = 4)?
    – warren
    Feb 29, 2016 at 21:45
  • 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.
    – Goahnary
    Dec 28, 2016 at 19:13
  • 1
    @Goahnary I realized that a while after I asked for the clarification, too :)
    – warren
    Dec 28, 2016 at 19:15
  • 4
    @warren it really should be a mod operator rather than a division. But oh well ¯_(ツ)_/¯
    – Goahnary
    Dec 28, 2016 at 19:17
8

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
0
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.”

0

For JIRA (and other 6 digit cron expressions):

0 0 0 1 JAN,APR,JUL,OCT ?

0

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .