Mac OS X,  Mac OS X Server,  Unix

The basics of cron

 The cron command has officially been deprecated in Mac OS X, but still functions if called upon. cron starts a process that executes commands at specified dates and times. Regularly scheduled commands can be specified according to instructions found in the crontab files in the directory /var/spool/cron/crontabs. Users can submit their own crontab files via the crontab command.  Crontab copies the specified file or standard input if no file is specified, into a directory that holds all users’ crontabs.  crontab options:

  • The -e option edits a copy of the current users’ crontab file or creates an empty file to edit if crontab does not exist.
  • The-r option removes a user’s crontab from the crontab directory.
  • The -l options lists the crontab file for the invoking user.

A crontab file consists of lines of six fields each.The fields are separated by spaces or tabs. The first five are integers that specify the following (in order):

  • minute (0-59)
  • hour (0-23)
  • day of the month (1-31)
  • month of the year (1-12)
  • day of the week (0-6 with 0=Sunday)

Each of these patterns may be either an asterisk (meaning all valid values) or a list of elements separated by commas. An element is either a number or two numbers separated by a minus sign ( meaning an inclusive range). Notice the time is in 24 hour format, 0 is midnight and 13 is one in the afternoon.  The * wildcard can be used to run on every instance of a given object.

The sixth field of a line in a crontab file is a string to be executed by the shell at the specified times by the first fife fields. A percent character in this field (unless escaped by ) is translated to a newline character. Only the first line (up to a % or end of line) of the command field is executed by the shell. The other lines are made available to the command as standard input.

Any line beginning with a # is a comment and is ignored.