crontab 4th Tuesday of month

Charlie Brune fedora at bruneworld.com
Mon Jul 30 01:02:46 UTC 2012


On 07/29/2012 02:28 PM, Mark LaPierre wrote:
> On 07/29/2012 02:33 PM, Charlie Brune wrote:
>> On 07/28/2012 08:20 AM, Tony Molloy wrote:
>>> On Saturday 28 July 2012 12:03:09 Frank Murphy wrote:
>>>> 15 18 22-28 * 2 /command
>>>>
>>>> I thought the last tuesday would be covered by above.
>>>> But it has run everyday since 22nd.
>>>>
>>>> Have googled a bit:
>>>> http://hintsforums.macworld.com/showthread.php?t=25110
>>>> plus other crontab pages.
>>>>
>>>>
>>> http://hintsforums.macworld.com/member.php?s=2584787478dc5ab0791da9
>>>> ba8d650aa5&u=28924 15 18 22-28 * * test 'date +\%a' != Tue ||
>>>> /command
>>>> Am uncertain if above would work ootb.
>>>>
>>>> man crontab (22 September 2010) doesn't shed light on this.
>>>>
>>> Try the following
>>>
>>> eg. this picks out the first sunday of the month
>>>
>>> 07 03 1-7 * * test `date +\%a` = Sun && /usr/local/bin/backup-full
>>>
>>> So
>>>
>>> 15 18 22-28 * * test 'date +\%a' = Tue && command
>>>
>>> Tony
>> Not sure if your syntax will work. If it doesn't, here's what has worked
>> for me:
>>
>> 23 1 22-28 * * [ `date +\%a` == "Tue" ] && /usr/local/bin/my-script
>>
>> Charlie
>
> If you are firing off a script with this why don't you build the logic 
> into the script?  Let cron fire off the script every Tuesday.  The 
> script can determine if it's the correct Tuesday and take whatever 
> action you want if it is or exit if it isn't.
>
That would work too.

It's just a matter of taste and where you want scheduling logic to be.  
I prefer to have all of the logic on when the script should run is in 
one place.  That way, if I change my mind on when the script runs, I 
only have one file to examine and edit to change it.


More information about the users mailing list