Hi there. Popping in to clarify that the (excellent) folks behind Dead Man's Snitch are advertising on the site, but that otherwise I'm not affiliated with them and they haven't contributed to the project beyond the ad.
That said, it's a pretty great product and you should check them out!
is not a very good example. It will launch a shell which will change to the specified directory and then terminate. (It might produce an error message if the directory doesn't exist.)
cron(8) examines cron entries once every minute.
The time and date fields are:
field allowed values
----- --------------
minute 0-59
hour 0-23
day of month 1-31
month 1-12 (or names, see below)
day of week 0-7 (0 or 7 is Sun, or use names)
A field may be an asterisk (*), which always stands
for "first-last".
Ranges of numbers are allowed. Ranges are two
numbers separated with a hyphen. The specified
range is inclusive.
For example, 8-11 for an "hours" entry specifies
execution at hours 8, 9, 10 and 11.
Lists are allowed. A list is a set of numbers (or
ranges) separated by commas. Examples: "1,2,5,9",
"0-4,8-12".
In some uses of the CRON format there is also a seconds field at the beginning of the pattern. In that case, the CRON expression is a string comprising 6 or 7 fields.
For visualizing a large quantity of crons, I'd recommend something akin to https://github.com/federatedmedia/cronviz which will graphically show when jobs are scheduled to run.
Agreed that it's not impressive, beings that the explanation is simply wrong. It's an edge case I'm definitely not handling properly. I've got [an open issue](https://github.com/pbyrne/cron-checker/issues/7) about combining ranges and modulo, but haven't gotten around to implementing it yet. Displaying an incorrect explanation is probably worse than no explanation, though, in retrospect.
The challenge is to decide what you would want it to say in the case of, say, "14-59/15". Do you want it to list all the possibilities? That becomes tedious if you have something like 2-57/2. Do you want to try to create a more direct plain English parse?
14-59/15 - Every 15th minute starting with the 14th
up to and including the 59th.
2-57/2 - Every 2nd minutes starting with the 2nd
up to and including the 56th.
A choice needs to be made - the direct plain English parse is quite long, and not always easy to read.
Arcane, seriously? What kind of syntax would be modern and clear in your opinion? YAML? JSON? XML probably, with a nice 150-page XTBJSPCOSDF (Extensible Time-Based Job Scheduling for POSIX-Compatible Operating Systems Description Framework) spec? ;)
Personally, I think this is pretty straightforward:
27 comments
[ 30.7 ms ] story [ 256 ms ] threadResults are a little harder to read. This other site gives more natural sentences.
CronWTF doesn't understand it either and that one even has a cat!
The first minute of the hour, then every 5 minutes until the 56th minute, inclusive
That said, it's a pretty great product and you should check them out!
is not a very good example. It will launch a shell which will change to the specified directory and then terminate. (It might produce an error message if the directory doesn't exist.)
It would also be great to support the seconds field.
From "man 5 crontab":
http://en.wikipedia.org/wiki/Cron#Format
I also turn to http://cronwtf.github.io when I need to sanity-check my crontab, which is a little more verbose and includes JSSpec tests.
Not impressed - seems overly simplistic.
Agreed that it's not impressive, beings that the explanation is simply wrong. It's an edge case I'm definitely not handling properly. I've got [an open issue](https://github.com/pbyrne/cron-checker/issues/7) about combining ranges and modulo, but haven't gotten around to implementing it yet. Displaying an incorrect explanation is probably worse than no explanation, though, in retrospect.
Arcane, seriously? What kind of syntax would be modern and clear in your opinion? YAML? JSON? XML probably, with a nice 150-page XTBJSPCOSDF (Extensible Time-Based Job Scheduling for POSIX-Compatible Operating Systems Description Framework) spec? ;)
Personally, I think this is pretty straightforward: