The cron
daemon is a long-running process that executes commands at specific dates and times. You can use this to schedule activities, either as one-time events or as recurring tasks.
To schedule one-time only tasks with cron
, use at
or batch
. For more information, see the man pages for at
and batch
.
For commands that need to be executed repeatedly (e.g., hourly, daily, or weekly), use crontab
, which has the following options:
crontab -a filename |
Install filename as your crontab file . On many systems, this command is executed simply as crontab filename (i.e.,
without the -a option). |
crontab -e |
Edit
your crontab file , or create one if it doesn't already exist.
|
crontab -l |
Display
your crontab file . |
crontab -r |
Remove
your crontab file . |
crontab -v |
Displays the last time you edited your crontab file . (This option is only available on a few systems.) |
crontab -u user |
Used in conjunction with other options, modify or view the crontab file of user . When available, this option can only be used by administrators. |
The crontab
command creates a crontab file
containing commands and instructions specifying when cron
should execute them. Each entry in a crontab file
consists of six fields, specifying in the following order:
minute(s) hour(s) day(s) month(s) weekday(s) command(s)
The fields are separated by spaces or tabs. The first five are integer patterns and the sixth is the command to be executed. The following table briefly describes each of the fields.
Field
|
Value
|
Description
|
minute
|
0-59
|
The
exact minute that the command sequence executes |
hour
|
0-23
|
The
hour of the day that the command sequence executes |
day
|
1-31
|
The
day of the month that the command sequence executes |
month
|
1-12
|
The
month of the year that the command sequence executes |
weekday
|
0-6
|
The
day of the week that the command sequence executes. Sunday=0, Monday = 1,
Tuesday = 2, and so forth. |
command
|
Special
|
The complete sequence of commands to be executed. The command string must conform to Bourne shell syntax. Commands, executables (such as scripts), or combinations are acceptable.
|
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. An element is either a number or an inclusive range, indicated by two numbers separated by a minus sign (10-12). You can specify days with two fields: day of the month and day of the week. If you specify both of them as a list of elements, cron
will observe both of them. For example:
0 0 1,15 * 1 /mydir/myprogram
The cron
daemon would run the program myprogram
in the mydir
directory on the first and fifteenth of each month, as well as on every Monday. To specify days by only one field, the other field should be set to *. For example:
0 0 * * 1 /mydir/myprogram
The program would then only run on Mondays.
If a cron
job specified in your crontab
entry produces any error messages when it runs, you will get a mail message reporting the errors.
For more information, consult the following relevant man pages:
man crontab man cron man at man batch
Note:
On some systems, you must get permission from the system administrator before
you can submit job requests to cron
. On many shared systems, because there is only one crontab file
, only the administrator has access to the crontab
command.