[Discuss] Historical origin of cron's day-of-month/weekday behavior?

John Abreau jabr at blu.org
Tue Oct 18 22:25:31 EDT 2011


One thing that's always annoyed me about cron is how it handles the
weekday field differently from the other fields. The first four fields,
minute, hour, day-of-month, and month, are logically ANDed, but
the day-of-month and weekday fields are ORed.

The man page describes the behavior, but does not explain the
reasoning behind it:

>     Note: The day of a command's execution can be specified by two fields --
>     day of month, and day of week.  If both fields are restricted (ie, are
>     not *), the command will be run when either field matches the current
>     time.  For example, ``30 4 1,15 * 5'' would cause a command to be run at
>     4:30 am on the 1st and 15th of each month, plus every Friday.

I've looked for an explanation for this in the past, but I've never
had any luck finding one. Making this a special case makes the code
needlessly more complicated and fragile, and it sacrifices useful
functionality; if the weekday had been ANDed like the other fields,
it would be trivially easy to specify things like "third Wednesday
of the month".

 I'm unable to find or think of a use case that would make the special
behavior useful, and I have to wonder why it was designed this way.

Can anyone point me to the original author's thoughts on this?



-- 
John Abreau / Executive Director, Boston Linux & Unix
Email jabr at blu.org / WWW http://www.abreau.net / PGP-Key-ID 0xD5C7B5D9
PGP-Key-Fingerprint 72 FB 39 4F 3C 3B D6 5B E0 C8 5A 6E F1 2C BE 99



More information about the Discuss mailing list