What are cron and crontab, and how do I use them?
Note: On most systems, you must get permission from
the system administrator before you can submit job requests to
cron. On some shared systems, because there is only one
crontab file, only the administrator has access to the
crontab command. To request that cron be
enabled on your Webserve account, see the Indiana
University Webmaster's Cron
page.
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 the
at or batch command. For more information,
see In Unix, what are at and batch, and how do I use them to submit non-interactive job requests?
For commands that need to be executed repeatedly (e.g., hourly, daily,
or weekly), you can use the crontab command. The
crontab command creates a crontab file containing
commands and instructions for the cron daemon to
execute. You can use the crontab command with 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 |
Display the last time you edited your crontab file. (This option is available on only a few systems.) |
crontab -u user |
Used in conjunction with other
options, this option allows you to modify or view the crontab file of
user. When available, only administrators can use this
option.
|
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 execute. 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 execute. 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
(e.g., 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:
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:
In the above example, the program would run only 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 batchAt Indiana University, to get support for personal or departmental Linux or Unix systems, see At IU, how do I get support for Linux or Unix?
Also see:
- In Unix, how can I get a command to execute when I log out?
- In Unix, how should I submit CPU-intensive jobs?
- In Unix, how do I cancel a batch job?
- In Unix, how can I send myself reminders of events?
- In Unix, what are at and batch, and how do I use them to submit non-interactive job requests?
Last modified on August 22, 2008.






