Commit | Line | Data |
---|---|---|
33ee458a WJ |
1 | .\" $Header: crontab.5,v 2.1 90/07/18 00:23:50 vixie Exp $ |
2 | .\" | |
3 | .\"/* Copyright 1988,1990 by Paul Vixie | |
4 | .\" * All rights reserved | |
5 | .\" * | |
6 | .\" * Distribute freely, except: don't remove my name from the source or | |
7 | .\" * documentation (don't take credit for my work), mark your changes (don't | |
8 | .\" * get me blamed for your possible bugs), don't alter or remove this | |
9 | .\" * notice. May be sold if buildable source is provided to buyer. No | |
10 | .\" * warrantee of any kind, express or implied, is included with this | |
11 | .\" * software; use at your own risk, responsibility for damages (if any) to | |
12 | .\" * anyone resulting from the use of this software rests entirely with the | |
13 | .\" * user. | |
14 | .\" * | |
15 | .\" * Send bug reports, bug fixes, enhancements, requests, flames, etc., and | |
16 | .\" * I'll try to keep a version up to date. I can be reached as follows: | |
17 | .\" * Paul Vixie, 329 Noe Street, San Francisco, CA, 94114, (415) 864-7013, | |
18 | .\" * paul@vixie.sf.ca.us || {hoptoad,pacbell,decwrl,crash}!vixie!paul | |
19 | .\" */ | |
20 | .TH CRONTAB 5 "15 January 1990" | |
21 | .UC 4 | |
22 | .SH NAME | |
23 | crontab \- tables for driving cron | |
24 | .SH DESCRIPTION | |
25 | A | |
26 | .I crontab | |
27 | file contains instructions to the | |
28 | .IR crond (8) | |
29 | daemon of the general form: ``run this command at this time on this date''. | |
30 | Each user has their own crontab, and commands in any given crontab will be | |
31 | executed as the user who owns the crontab. Uucp and News will usually have | |
32 | their own crontabs, eliminating the need for explicitly running | |
33 | .IR su (1) | |
34 | as part of a cron command. | |
35 | .PP | |
36 | Blank lines and leading spaces and tabs are ignored. Lines whose first | |
37 | non-space character is a pound-sign (#) are comments, and are ignored. | |
38 | Note that comments are not allowed on the same line as cron commands, since | |
39 | they will be taken to be part of the command. Similarly, comments are not | |
40 | allowed on the same line as environment variable settings. | |
41 | .PP | |
42 | An active line in a crontab will be either an environment setting or a cron | |
43 | command. An environment setting is of the form, | |
44 | .PP | |
45 | name = value | |
46 | .PP | |
47 | where the spaces around the equal-sign (=) are optional, and any subsequent | |
48 | non-leading spaces in | |
49 | .I value | |
50 | will be part of the value assigned to | |
51 | .IR name . | |
52 | The | |
53 | .I value | |
54 | string may be placed in quotes (single or double, but matching) to preserve | |
55 | leading or trailing blanks. | |
56 | .PP | |
57 | Several environment variables are set up | |
58 | automatically by the | |
59 | .IR crond (8) | |
60 | daemon from the /etc/passwd line of the crontab's owner: USER, HOME, and SHELL. | |
61 | HOME and SHELL may be overridden by settings in the crontab; USER may not. | |
62 | .PP | |
63 | (Note: for UUCP, always set SHELL=/bin/sh, or | |
64 | .IR crond (8) | |
65 | will cheerfully try to execute your commands using /usr/lib/uucp/uucico.) | |
66 | .PP | |
67 | (Another note: the USER variable is sometimes called LOGNAME or worse on | |
68 | System V... on these systems, LOGNAME will be set rather than USER.) | |
69 | .PP | |
70 | In addition to USER, HOME, and SHELL, | |
71 | .IR crond (8) | |
72 | will look at MAILTO if it has any reason to send mail as a result of running | |
73 | commands in ``this'' crontab. If MAILTO is defined (and non-empty), mail is | |
74 | sent to the user so named. If MAILTO is defined but empty (MAILTO=""), no | |
75 | mail will be sent. Otherwise mail is sent to the owner of the crontab. This | |
76 | option is useful if you decide on /bin/mail instead of /usr/lib/sendmail as | |
77 | your mailer when you install cron -- /bin/mail doesn't do aliasing, and UUCP | |
78 | usually doesn't read its mail. | |
79 | .PP | |
80 | The format of a cron command is very much the V7 standard, with a number of | |
81 | upward-compatible extensions. Each line has five time and date fields, | |
82 | followed by a command. Commands are executed by | |
83 | .IR crond (8) | |
84 | when the minute, hour, and month of year fields match the current time, | |
85 | .I and | |
86 | when at least one of the two day fields (day of month, or day of week) | |
87 | match the current time (see ``Note'' below). | |
88 | .IR crond (8) | |
89 | examines cron entries once every minute. | |
90 | The time and date fields are: | |
91 | .IP | |
92 | .ta 1.5i | |
93 | field allowed values | |
94 | .br | |
95 | ----- -------------- | |
96 | .br | |
97 | minute 0-59 | |
98 | .br | |
99 | hour 0-23 | |
100 | .br | |
101 | day of month 0-31 | |
102 | .br | |
103 | month 0-12 (or names, see below) | |
104 | .br | |
105 | day of week 0-7 (0 or 7 is Sun, or use names) | |
106 | .br | |
107 | .PP | |
108 | A field may be an asterisk (*), which always matches the | |
109 | current time. | |
110 | .PP | |
111 | Ranges of numbers are allowed. Ranges are two numbers separated | |
112 | with a hyphen. The specified range is inclusive. For example, | |
113 | 8-11 for an ``hours'' entry specifies execution at hours 8, 9, 10 | |
114 | and 11. | |
115 | .PP | |
116 | Lists are allowed. A list is a set of numbers (or ranges) | |
117 | separated by commas. Examples: ``1,2,5,9'', ``0-4,8-12''. | |
118 | .PP | |
119 | Step values can be used in conjunction with ranges. Following | |
120 | a range with ``/<number>'' specifies skips of the number's value | |
121 | through the range. For example, ``0-23/2'' can be used in the hours | |
122 | field to specify command execution every other hour (the alternative | |
123 | in the V7 standard is ``0,2,4,6,8,10,12,14,16,18,20,22''). | |
124 | .PP | |
125 | Names can also be used for the ``month'' and ``day of week'' | |
126 | fields. Use the first three letters of the particular | |
127 | day or month (case doesn't matter). Ranges or | |
128 | lists of names are not allowed. | |
129 | .PP | |
130 | The ``sixth'' field (the rest of the line) specifies the command to be | |
131 | run. | |
132 | The entire command portion of the line, up to a newline or % | |
133 | character, will be executed by the user's login shell or by the shell | |
134 | specified in the SHELL variable of the cronfile. | |
135 | Percent-signs (%) in the command, unless escaped with backslash | |
136 | (\\), will be changed into newline characters, and all data | |
137 | after the first % will be sent to the command as standard | |
138 | input. | |
139 | .PP | |
140 | Note: The day of a command's execution can be specified by two | |
141 | fields \(em day of month, and day of week. If both fields are | |
142 | restricted (ie, aren't *), the command will be run when | |
143 | .I either | |
144 | field matches the current time. For example, | |
145 | .br | |
146 | ``30 4 1,15 * 5'' | |
147 | would cause a command to be run at 4:30 am on the 1st and 15th of each | |
148 | month, plus every Friday. | |
149 | .SH EXAMPLE CRON FILE | |
150 | .nf | |
151 | ||
152 | # use /bin/sh to run commands, no matter what /etc/passwd says | |
153 | SHELL=/bin/sh | |
154 | # mail any output to `paul', no matter whose crontab this is | |
155 | MAILTO=paul | |
156 | # | |
157 | # run five minutes after midnight, every day | |
158 | 5 0 * * * $HOME/bin/daily.job >> $HOME/tmp/out 2>&1 | |
159 | # run at 2:15pm on the first of every month -- output mailed to paul | |
160 | 15 14 1 * * $HOME/bin/monthly | |
161 | # run at 10 pm on weekdays, annoy Joe | |
162 | 0 22 * * 1-5 mail -s "It's 10pm" joe%Joe,%%Where are your kids?% | |
163 | 23 0-23/2 * * * echo "run 23 minutes after midn, 2am, 4am ..., everyday" | |
164 | 5 4 * * sun echo "run at 5 after 4 every sunday" | |
165 | .fi | |
166 | .SH SEE ALSO | |
167 | crond(8), crontab(1) | |
168 | .SH EXTENSIONS | |
169 | When specifying day of week, both day 0 and day 7 will be considered Sunday. | |
170 | BSD and ATT seem to disagree about this. | |
171 | .PP | |
172 | Lists and ranges are allowed to co-exist in the same field. "1-3,7-9" would | |
173 | be rejected by ATT or BSD cron -- they want to see "1-3" or "7,8,9" ONLY. | |
174 | .PP | |
175 | Ranges can include "steps", so "1-9/2" is the same as "1,3,5,7,9". | |
176 | .PP | |
177 | Names of months or days of the week can be specified by name. | |
178 | .PP | |
179 | Environment variables can be set in the crontab. In BSD or ATT, the | |
180 | environment handed to child processes is basically the one from /etc/rc. | |
181 | .PP | |
182 | Command output is mailed to the crontab owner (BSD can't do this), can be | |
183 | mailed to a person other than the crontab owner (SysV can't do this), or the | |
184 | feature can be turned off and no mail will be sent at all (SysV can't do this | |
185 | either). | |
186 | .SH AUTHOR | |
187 | .nf | |
188 | Paul Vixie, paul@vixie.sf.ca.us |