/usr/lib/crontab /usr/local/lib/crontab /var/lib/crontab /var/opt/name/lib/crontab (Minix-vmd only) /usr/spool/crontabs/user
The time numbers can be given as a comma separated list of simple numbers, ranges ("2-5" is the same as "2,3,4,5"), and repeats ("2:5" means "2,7,12,17,22" in the hour field). A repeat is cyclic affair, i.e. 2:5 and 12:5 are the same thing. A single "*" can be used in a field to indicate all valid numbers in that field, so it translates to "always". In the minute field you can use "?" for the current minute that the crontab file is loaded. It can be used in a repeat, i.e. "?:10" for every 10 minutes. This keeps machines with identical crontabs from executing tasks at exactly the same time, causing a burst of traffic if anything is done over a network.
If a given time is valid in all five fields then a command is executed. Here are a few examples that illustrate the possibilities:
# min hour mday mon wday command ? 3 * * * /usr/etc/daily # Daily system cleanup 0 * * * * date # Print date on the hour 30 4 * * 2-6 /var/etc/backup # After workdays on 4:30 0 9 25 12 * -u ast sing # Andy sings on Xmas morning 0 0 13 * 5 echo Beware! # For the superstitious
The command may optionally be prefixed by -u " user" to specify under which user the command should be run. Commands from crontabs in the spool directory are always run under the id of the crontab's owner, the -u flag is ignored.
A command can be placed on the same line as the time fields, or on the next line indented by one TAB character. (A TAB, not eight spaces.) More TAB indented lines can be added for a multiline command. The tabs are removed from the command when passed to the shell. If a command is put on the same line as the time fields then percent characters are changed into newlines, this is not done for a TAB indented command. The following three entries give the same output:
0 12 * * * echo 'Hello'; echo ' World!' #1 0 12 * * * echo 'Hello% World!' #2 0 12 * * * #3 cat <<EOF #4 Hello World! EOF
Comments start with a "#" character and continue until end of line. They, excess whitespace, and empty lines are ignored. Of the comments in the example above #1 and #3 are ignored by cron , but #2 and #4 are not recognized as comments, but are seen as part of a command and are passed to the shell who then happens to ignore them. There is no interpretation of command characters other than the percent in a oneliner. The time fields must all be on the same line.
25n /usr/lib/crontab Main MINIX 3 crontab file.
/usr/local/lib/crontab Local jobs for all systems in an organization.
/var/lib/crontab System specific jobs.
/var/opt/name/lib/crontab Per package jobs for Minix-vmd.
/usr/lib/packages List of installed packages.
/usr/spool/crontabs/user Per user jobs.
Other crons allow one to specify input to a job in some way, something this cron can't. Simply use the << shell feature to do that. Other crons often choke on empty lines.
It is a common bug to use 0 for Sunday instead of 7. This cron, like most other crons out there accepts this without comment.
A job is not reissued until a previous instance of it has exited. The next time to execute is computed from the previous time it ran. If job issuing lags behind on the system time then the next time to run it is computed from the current system time.
$PchId: crontab.5,v 1.3 2000/07/17 18:53:05 philip Exp $