Crontab Usage
From FaithHighway Wiki
From Wikipedia , the free encyclopedia (http://en.wikipedia.org/wiki/Crontab)
In computing, cron is a time-based scheduling service in Unix-like computer operating systems. The name is derived from Greek chronos (χρόνος), meaning time.
Contents |
[edit] Design
cron is driven by a crontab, a configuration file that specifies shell commands to run periodically on a given schedule.
Early versions of cron, available up through Version 7 Unix and 32V made their services available only to the super-user of the operating system; this was the single-user version. With the release of Unix System V these services were extended to all account-holding users of the system, the multi-user cron.
[edit] Usage
Generally, the schedules modified by crontab are enacted by a daemon, crond, which runs constantly in the background and checks once a minute to see if any of the scheduled jobs need to be executed. If so, it executes them. These jobs are generally referred to as cron jobs.
[edit] crontab syntax
The crontab files are where the lists of jobs and other instructions to the cron daemon are kept. Users can have their own individual crontab files and often there is a systemwide crontab file (usually in /etc or a subdirectory of /etc) which is also used but can only be edited by the system administrator(s).
Each line of a crontab file follows a particular format as a series of fields, separated by spaces and/or tabs. Each field can have a single value or a series of values.
[edit] Operators
There are several ways of specifying multiple date/time values in a field:
- The comma (',') operator specifies a list of values, for example: "1,3,4,7,8"
- The dash ('-') operator specifies a range of values, for example: "1-6", which is equivalent to "1,2,3,4,5,6"
- The asterisk ('*') operator specifies all possible values for a field. For example, an asterisk in the hour time field would be equivalent to 'every hour'.
There is also an operator which some extended versions of cron support, the slash ('/') operator, which can be used to skip a given number of values. For example, "*/3" in the hour time field is equivalent to "0,3,6,9,12,15,18,21"; "*" specifies 'every hour' but the "/3" means that only the first, fourth, seventh...and such values given by "*" are used.
[edit] Fields
# +---------------- minute (0 - 59) # | +------------- hour (0 - 23) # | | +---------- day of month (1 - 31) # | | | +------- month (1 - 12) # | | | | +---- day of week (0 - 7) (Sunday=0 or 7) # | | | | | * * * * * command to be executed
Each of the patterns from the first five fields may be either * (an asterisk), meaning all legal values, or a list of elements separated by commas. The sixth and subsequent fields (i.e., the rest of the line) specify the command to be run.
For "day of the week" (field 5), both 0 and 7 are considered Sunday, though some versions of Unix such as AIX do not list "7" as acceptable in the man page.
Counterintuitively, if both "day of month" (field 3) and "day of week" (field 5) are present on the same line, then the command is executed when either is true.

