xref: /freebsd/usr.sbin/cron/crontab/crontab.5 (revision bf5cbf35513d811c5829f8756a46eeb017a0a39b)
184f33deaSJordan K. Hubbard.\"/* Copyright 1988,1990,1993,1994 by Paul Vixie
284f33deaSJordan K. Hubbard.\" * All rights reserved
384f33deaSJordan K. Hubbard.\" *
484f33deaSJordan K. Hubbard.\" * Distribute freely, except: don't remove my name from the source or
584f33deaSJordan K. Hubbard.\" * documentation (don't take credit for my work), mark your changes (don't
684f33deaSJordan K. Hubbard.\" * get me blamed for your possible bugs), don't alter or remove this
784f33deaSJordan K. Hubbard.\" * notice.  May be sold if buildable source is provided to buyer.  No
884f33deaSJordan K. Hubbard.\" * warrantee of any kind, express or implied, is included with this
984f33deaSJordan K. Hubbard.\" * software; use at your own risk, responsibility for damages (if any) to
1084f33deaSJordan K. Hubbard.\" * anyone resulting from the use of this software rests entirely with the
1184f33deaSJordan K. Hubbard.\" * user.
1284f33deaSJordan K. Hubbard.\" *
1384f33deaSJordan K. Hubbard.\" * Send bug reports, bug fixes, enhancements, requests, flames, etc., and
1484f33deaSJordan K. Hubbard.\" * I'll try to keep a version up to date.  I can be reached as follows:
1584f33deaSJordan K. Hubbard.\" * Paul Vixie          <paul@vix.com>          uunet!decwrl!vixie!paul
1684f33deaSJordan K. Hubbard.\" */
1784f33deaSJordan K. Hubbard.\"
18bf5cbf35SWolfram Schneider.\" $Id: crontab.5,v 1.5 1997/09/15 06:39:14 charnier Exp $
1984f33deaSJordan K. Hubbard.\"
20401e6468SPhilippe Charnier.Dd January 24, 1994
21401e6468SPhilippe Charnier.Dt CRONTAB 5
22401e6468SPhilippe Charnier.Os
23401e6468SPhilippe Charnier.Sh NAME
24401e6468SPhilippe Charnier.Nm crontab
25401e6468SPhilippe Charnier.Nd tables for driving cron
26401e6468SPhilippe Charnier.Sh DESCRIPTION
2784f33deaSJordan K. HubbardA
28401e6468SPhilippe Charnier.Nm
2984f33deaSJordan K. Hubbardfile contains instructions to the
30401e6468SPhilippe Charnier.Xr cron 8
3184f33deaSJordan K. Hubbarddaemon of the general form: ``run this command at this time on this date''.
3284f33deaSJordan K. HubbardEach user has their own crontab, and commands in any given crontab will be
3384f33deaSJordan K. Hubbardexecuted as the user who owns the crontab.  Uucp and News will usually have
3484f33deaSJordan K. Hubbardtheir own crontabs, eliminating the need for explicitly running
35401e6468SPhilippe Charnier.Xr su 1
3684f33deaSJordan K. Hubbardas part of a cron command.
37401e6468SPhilippe Charnier.Pp
3884f33deaSJordan K. HubbardBlank lines and leading spaces and tabs are ignored.  Lines whose first
3984f33deaSJordan K. Hubbardnon-space character is a pound-sign (#) are comments, and are ignored.
4084f33deaSJordan K. HubbardNote that comments are not allowed on the same line as cron commands, since
4184f33deaSJordan K. Hubbardthey will be taken to be part of the command.  Similarly, comments are not
4284f33deaSJordan K. Hubbardallowed on the same line as environment variable settings.
43401e6468SPhilippe Charnier.Pp
4484f33deaSJordan K. HubbardAn active line in a crontab will be either an environment setting or a cron
4584f33deaSJordan K. Hubbardcommand.  An environment setting is of the form,
46401e6468SPhilippe Charnier.Pp
4784f33deaSJordan K. Hubbard    name = value
48401e6468SPhilippe Charnier.Pp
4984f33deaSJordan K. Hubbardwhere the spaces around the equal-sign (=) are optional, and any subsequent
5084f33deaSJordan K. Hubbardnon-leading spaces in
51401e6468SPhilippe Charnier.Em value
5284f33deaSJordan K. Hubbardwill be part of the value assigned to
53401e6468SPhilippe Charnier.Em name .
5484f33deaSJordan K. HubbardThe
55401e6468SPhilippe Charnier.Em value
5684f33deaSJordan K. Hubbardstring may be placed in quotes (single or double, but matching) to preserve
5784f33deaSJordan K. Hubbardleading or trailing blanks.
58401e6468SPhilippe Charnier.Pp
5984f33deaSJordan K. HubbardSeveral environment variables are set up
6084f33deaSJordan K. Hubbardautomatically by the
61401e6468SPhilippe Charnier.Xr cron 8
6284f33deaSJordan K. Hubbarddaemon.
63401e6468SPhilippe Charnier.Ev SHELL
64401e6468SPhilippe Charnieris set to
65401e6468SPhilippe Charnier.Pa /bin/sh ,
66401e6468SPhilippe Charnierand
67401e6468SPhilippe Charnier.Ev LOGNAME
68401e6468SPhilippe Charnierand
69401e6468SPhilippe Charnier.Ev HOME
70401e6468SPhilippe Charnierare set from the
71401e6468SPhilippe Charnier.Pa /etc/passwd
7284f33deaSJordan K. Hubbardline of the crontab's owner.
73401e6468SPhilippe Charnier.Ev HOME
74401e6468SPhilippe Charnierand
75401e6468SPhilippe Charnier.Ev SHELL
76401e6468SPhilippe Charniermay be overridden by settings in the crontab;
77401e6468SPhilippe Charnier.Ev LOGNAME
78401e6468SPhilippe Charniermay not.
79401e6468SPhilippe Charnier.Pp
80401e6468SPhilippe Charnier(Another note: the
81401e6468SPhilippe Charnier.Ev LOGNAME
82401e6468SPhilippe Charniervariable is sometimes called
83401e6468SPhilippe Charnier.Ev USER
84401e6468SPhilippe Charnieron BSD systems...
85401e6468SPhilippe Charnieron these systems,
86401e6468SPhilippe Charnier.Ev USER
87401e6468SPhilippe Charnierwill be set also).
88401e6468SPhilippe Charnier.Pp
89401e6468SPhilippe CharnierIn addition to
90401e6468SPhilippe Charnier.Ev LOGNAME ,
91401e6468SPhilippe Charnier.Ev HOME ,
92401e6468SPhilippe Charnierand
93401e6468SPhilippe Charnier.Ev SHELL ,
94401e6468SPhilippe Charnier.Xr cron 8
95401e6468SPhilippe Charnierwill look at
96401e6468SPhilippe Charnier.Ev MAILTO
97401e6468SPhilippe Charnierif it has any reason to send mail as a result of running
98401e6468SPhilippe Charniercommands in ``this'' crontab.  If
99401e6468SPhilippe Charnier.Ev MAILTO
100401e6468SPhilippe Charnieris defined (and non-empty), mail is
101401e6468SPhilippe Charniersent to the user so named.  If
102401e6468SPhilippe Charnier.Ev MAILTO
103401e6468SPhilippe Charnieris defined but empty (MAILTO=""), no
10484f33deaSJordan K. Hubbardmail will be sent.  Otherwise mail is sent to the owner of the crontab.  This
105401e6468SPhilippe Charnieroption is useful if you decide on
106401e6468SPhilippe Charnier.Pa /bin/mail
107401e6468SPhilippe Charnierinstead of
108401e6468SPhilippe Charnier.Pa /usr/lib/sendmail
109401e6468SPhilippe Charnieras
110401e6468SPhilippe Charnieryour mailer when you install cron --
111401e6468SPhilippe Charnier.Pa /bin/mail
112401e6468SPhilippe Charnierdoesn't do aliasing, and UUCP
11384f33deaSJordan K. Hubbardusually doesn't read its mail.
114401e6468SPhilippe Charnier.Pp
11584f33deaSJordan K. HubbardThe format of a cron command is very much the V7 standard, with a number of
11684f33deaSJordan K. Hubbardupward-compatible extensions.  Each line has five time and date fields,
11784f33deaSJordan K. Hubbardfollowed by a user name if this is the system crontab file,
11884f33deaSJordan K. Hubbardfollowed by a command.  Commands are executed by
119401e6468SPhilippe Charnier.Xr cron 8
12084f33deaSJordan K. Hubbardwhen the minute, hour, and month of year fields match the current time,
121401e6468SPhilippe Charnier.Em and
12284f33deaSJordan K. Hubbardwhen at least one of the two day fields (day of month, or day of week)
12384f33deaSJordan K. Hubbardmatch the current time (see ``Note'' below).
124401e6468SPhilippe Charnier.Xr cron 8
12584f33deaSJordan K. Hubbardexamines cron entries once every minute.
12684f33deaSJordan K. HubbardThe time and date fields are:
127401e6468SPhilippe Charnier.Bd -literal -offset indent
12884f33deaSJordan K. Hubbardfield         allowed values
12984f33deaSJordan K. Hubbard-----         --------------
13084f33deaSJordan K. Hubbardminute        0-59
13184f33deaSJordan K. Hubbardhour          0-23
132043c578eSMike Pritchardday of month  1-31
133043c578eSMike Pritchardmonth         1-12 (or names, see below)
13484f33deaSJordan K. Hubbardday of week   0-7 (0 or 7 is Sun, or use names)
135401e6468SPhilippe Charnier.Ed
136401e6468SPhilippe Charnier.Pp
13784f33deaSJordan K. HubbardA field may be an asterisk (*), which always stands for ``first\-last''.
138401e6468SPhilippe Charnier.Pp
13984f33deaSJordan K. HubbardRanges of numbers are allowed.  Ranges are two numbers separated
14084f33deaSJordan K. Hubbardwith a hyphen.  The specified range is inclusive.  For example,
14184f33deaSJordan K. Hubbard8-11 for an ``hours'' entry specifies execution at hours 8, 9, 10
14284f33deaSJordan K. Hubbardand 11.
143401e6468SPhilippe Charnier.Pp
14484f33deaSJordan K. HubbardLists are allowed.  A list is a set of numbers (or ranges)
14584f33deaSJordan K. Hubbardseparated by commas.  Examples: ``1,2,5,9'', ``0-4,8-12''.
146401e6468SPhilippe Charnier.Pp
14784f33deaSJordan K. HubbardStep values can be used in conjunction with ranges.  Following
14884f33deaSJordan K. Hubbarda range with ``/<number>'' specifies skips of the number's value
14984f33deaSJordan K. Hubbardthrough the range.  For example, ``0-23/2'' can be used in the hours
15084f33deaSJordan K. Hubbardfield to specify command execution every other hour (the alternative
15184f33deaSJordan K. Hubbardin the V7 standard is ``0,2,4,6,8,10,12,14,16,18,20,22'').  Steps are
15284f33deaSJordan K. Hubbardalso permitted after an asterisk, so if you want to say ``every two
15384f33deaSJordan K. Hubbardhours'', just use ``*/2''.
154401e6468SPhilippe Charnier.Pp
15584f33deaSJordan K. HubbardNames can also be used for the ``month'' and ``day of week''
15684f33deaSJordan K. Hubbardfields.  Use the first three letters of the particular
15784f33deaSJordan K. Hubbardday or month (case doesn't matter).  Ranges or
15884f33deaSJordan K. Hubbardlists of names are not allowed.
159401e6468SPhilippe Charnier.Pp
16084f33deaSJordan K. HubbardThe ``sixth'' field (the rest of the line) specifies the command to be
16184f33deaSJordan K. Hubbardrun.
16284f33deaSJordan K. HubbardThe entire command portion of the line, up to a newline or %
163401e6468SPhilippe Charniercharacter, will be executed by
164401e6468SPhilippe Charnier.Pa /bin/sh
165401e6468SPhilippe Charnieror by the shell
166401e6468SPhilippe Charnierspecified in the
167401e6468SPhilippe Charnier.Ev SHELL
168401e6468SPhilippe Charniervariable of the cronfile.
16984f33deaSJordan K. HubbardPercent-signs (%) in the command, unless escaped with backslash
17084f33deaSJordan K. Hubbard(\\), will be changed into newline characters, and all data
17184f33deaSJordan K. Hubbardafter the first % will be sent to the command as standard
17284f33deaSJordan K. Hubbardinput.
173401e6468SPhilippe Charnier.Pp
17484f33deaSJordan K. HubbardNote: The day of a command's execution can be specified by two
17584f33deaSJordan K. Hubbardfields \(em day of month, and day of week.  If both fields are
17684f33deaSJordan K. Hubbardrestricted (ie, aren't *), the command will be run when
177401e6468SPhilippe Charnier.Em either
17884f33deaSJordan K. Hubbardfield matches the current time.  For example,
17984f33deaSJordan K. Hubbard.br
18084f33deaSJordan K. Hubbard``30 4 1,15 * 5''
18184f33deaSJordan K. Hubbardwould cause a command to be run at 4:30 am on the 1st and 15th of each
18284f33deaSJordan K. Hubbardmonth, plus every Friday.
183401e6468SPhilippe Charnier.Sh EXAMPLE CRON FILE
184401e6468SPhilippe Charnier.Bd -literal
18584f33deaSJordan K. Hubbard
18684f33deaSJordan K. Hubbard# use /bin/sh to run commands, no matter what /etc/passwd says
18784f33deaSJordan K. HubbardSHELL=/bin/sh
18884f33deaSJordan K. Hubbard# mail any output to `paul', no matter whose crontab this is
18984f33deaSJordan K. HubbardMAILTO=paul
19084f33deaSJordan K. Hubbard#
19184f33deaSJordan K. Hubbard# run five minutes after midnight, every day
19284f33deaSJordan K. Hubbard5 0 * * *       $HOME/bin/daily.job >> $HOME/tmp/out 2>&1
19384f33deaSJordan K. Hubbard# run at 2:15pm on the first of every month -- output mailed to paul
19484f33deaSJordan K. Hubbard15 14 1 * *     $HOME/bin/monthly
19584f33deaSJordan K. Hubbard# run at 10 pm on weekdays, annoy Joe
19684f33deaSJordan K. Hubbard0 22 * * 1-5	mail -s "It's 10pm" joe%Joe,%%Where are your kids?%
19784f33deaSJordan K. Hubbard23 0-23/2 * * * echo "run 23 minutes after midn, 2am, 4am ..., everyday"
19884f33deaSJordan K. Hubbard5 4 * * sun     echo "run at 5 after 4 every sunday"
199401e6468SPhilippe Charnier.Ed
200401e6468SPhilippe Charnier.Sh SEE ALSO
201bf5cbf35SWolfram Schneider.Xr crontab 1 ,
202bf5cbf35SWolfram Schneider.Xr cron 8
203401e6468SPhilippe Charnier.Sh EXTENSIONS
20484f33deaSJordan K. HubbardWhen specifying day of week, both day 0 and day 7 will be considered Sunday.
20584f33deaSJordan K. HubbardBSD and ATT seem to disagree about this.
206401e6468SPhilippe Charnier.Pp
20784f33deaSJordan K. HubbardLists and ranges are allowed to co-exist in the same field.  "1-3,7-9" would
20884f33deaSJordan K. Hubbardbe rejected by ATT or BSD cron -- they want to see "1-3" or "7,8,9" ONLY.
209401e6468SPhilippe Charnier.Pp
21084f33deaSJordan K. HubbardRanges can include "steps", so "1-9/2" is the same as "1,3,5,7,9".
211401e6468SPhilippe Charnier.Pp
21284f33deaSJordan K. HubbardNames of months or days of the week can be specified by name.
213401e6468SPhilippe Charnier.Pp
21484f33deaSJordan K. HubbardEnvironment variables can be set in the crontab.  In BSD or ATT, the
215401e6468SPhilippe Charnierenvironment handed to child processes is basically the one from
216401e6468SPhilippe Charnier.Pa /etc/rc .
217401e6468SPhilippe Charnier.Pp
21884f33deaSJordan K. HubbardCommand output is mailed to the crontab owner (BSD can't do this), can be
21984f33deaSJordan K. Hubbardmailed to a person other than the crontab owner (SysV can't do this), or the
22084f33deaSJordan K. Hubbardfeature can be turned off and no mail will be sent at all (SysV can't do this
22184f33deaSJordan K. Hubbardeither).
222401e6468SPhilippe Charnier.Sh AUTHOR
223401e6468SPhilippe Charnier.An Paul Vixie Aq paul@vix.com
224