xref: /freebsd/usr.sbin/cron/crontab/crontab.5 (revision bd6174f74cba5fe1f16b8d36e8f516dca97407f4)
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.\"
1897d92980SPeter Wemm.\" $FreeBSD$
1984f33deaSJordan K. Hubbard.\"
20*bd6174f7SKyle Evans.Dd April 19, 2019
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
3307bfccd7SRuslan Ermilovexecuted as the user who owns the crontab.
3407bfccd7SRuslan ErmilovUucp and News will usually have
3584f33deaSJordan K. Hubbardtheir own crontabs, eliminating the need for explicitly running
36401e6468SPhilippe Charnier.Xr su 1
3784f33deaSJordan K. Hubbardas part of a cron command.
38401e6468SPhilippe Charnier.Pp
3907bfccd7SRuslan ErmilovBlank lines and leading spaces and tabs are ignored.
4007bfccd7SRuslan ErmilovLines whose first
4184f33deaSJordan K. Hubbardnon-space character is a pound-sign (#) are comments, and are ignored.
4284f33deaSJordan K. HubbardNote that comments are not allowed on the same line as cron commands, since
4307bfccd7SRuslan Ermilovthey will be taken to be part of the command.
4407bfccd7SRuslan ErmilovSimilarly, comments are not
4584f33deaSJordan K. Hubbardallowed on the same line as environment variable settings.
46401e6468SPhilippe Charnier.Pp
4784f33deaSJordan K. HubbardAn active line in a crontab will be either an environment setting or a cron
4807bfccd7SRuslan Ermilovcommand.
4907bfccd7SRuslan ErmilovAn environment setting is of the form,
50c5083414SRuslan Ermilov.Bd -literal
5184f33deaSJordan K. Hubbard    name = value
52c5083414SRuslan Ermilov.Ed
53401e6468SPhilippe Charnier.Pp
5484f33deaSJordan K. Hubbardwhere the spaces around the equal-sign (=) are optional, and any subsequent
5584f33deaSJordan K. Hubbardnon-leading spaces in
56401e6468SPhilippe Charnier.Em value
5784f33deaSJordan K. Hubbardwill be part of the value assigned to
58401e6468SPhilippe Charnier.Em name .
5984f33deaSJordan K. HubbardThe
60401e6468SPhilippe Charnier.Em value
6184f33deaSJordan K. Hubbardstring may be placed in quotes (single or double, but matching) to preserve
6284f33deaSJordan K. Hubbardleading or trailing blanks.
63c3e1da6bSSheldon HearnThe
64c3e1da6bSSheldon Hearn.Em name
65c3e1da6bSSheldon Hearnstring may also be placed in quote (single or double, but matching)
6657bd0fc6SJens Schweikhardtto preserve leading, trailing or inner blanks.
67401e6468SPhilippe Charnier.Pp
6884f33deaSJordan K. HubbardSeveral environment variables are set up
6984f33deaSJordan K. Hubbardautomatically by the
70401e6468SPhilippe Charnier.Xr cron 8
7184f33deaSJordan K. Hubbarddaemon.
72401e6468SPhilippe Charnier.Ev SHELL
73401e6468SPhilippe Charnieris set to
74401e6468SPhilippe Charnier.Pa /bin/sh ,
7548193882SChristian Brueffer.Ev PATH
7648193882SChristian Bruefferis set to
7743d53dbaSJilles Tjoelker.Pa /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin ,
78401e6468SPhilippe Charnierand
79401e6468SPhilippe Charnier.Ev LOGNAME
80401e6468SPhilippe Charnierand
81401e6468SPhilippe Charnier.Ev HOME
82401e6468SPhilippe Charnierare set from the
83401e6468SPhilippe Charnier.Pa /etc/passwd
8484f33deaSJordan K. Hubbardline of the crontab's owner.
8548193882SChristian Brueffer.Ev HOME ,
8648193882SChristian Brueffer.Ev PATH
87401e6468SPhilippe Charnierand
88401e6468SPhilippe Charnier.Ev SHELL
89401e6468SPhilippe Charniermay be overridden by settings in the crontab;
90401e6468SPhilippe Charnier.Ev LOGNAME
91401e6468SPhilippe Charniermay not.
92401e6468SPhilippe Charnier.Pp
93401e6468SPhilippe Charnier(Another note: the
94401e6468SPhilippe Charnier.Ev LOGNAME
95401e6468SPhilippe Charniervariable is sometimes called
96401e6468SPhilippe Charnier.Ev USER
97753d686dSRuslan Ermilovon
98753d686dSRuslan Ermilov.Bx
99753d686dSRuslan Ermilovsystems...
100c75526d5SRuslan ErmilovOn these systems,
101401e6468SPhilippe Charnier.Ev USER
102401e6468SPhilippe Charnierwill be set also).
103401e6468SPhilippe Charnier.Pp
104401e6468SPhilippe CharnierIn addition to
105401e6468SPhilippe Charnier.Ev LOGNAME ,
106401e6468SPhilippe Charnier.Ev HOME ,
10748193882SChristian Brueffer.Ev PATH ,
108401e6468SPhilippe Charnierand
109401e6468SPhilippe Charnier.Ev SHELL ,
110401e6468SPhilippe Charnier.Xr cron 8
111401e6468SPhilippe Charnierwill look at
112401e6468SPhilippe Charnier.Ev MAILTO
113401e6468SPhilippe Charnierif it has any reason to send mail as a result of running
11407bfccd7SRuslan Ermilovcommands in ``this'' crontab.
11507bfccd7SRuslan ErmilovIf
116401e6468SPhilippe Charnier.Ev MAILTO
117401e6468SPhilippe Charnieris defined (and non-empty), mail is
1188030199cSTom Rhodessent to the user so named.
11912455a9eSKyle EvansIf
12012455a9eSKyle Evans.Ev MAILFROM
12112455a9eSKyle Evansis defined (and non-empty), its value will be used as the from address.
1228030199cSTom Rhodes.Ev MAILTO
1238030199cSTom Rhodesmay also be used to direct mail to multiple recipients
124637fd955SSergey Skvortsovby separating recipient users with a comma.
1258030199cSTom RhodesIf
126401e6468SPhilippe Charnier.Ev MAILTO
127401e6468SPhilippe Charnieris defined but empty (MAILTO=""), no
12807bfccd7SRuslan Ermilovmail will be sent.
12907bfccd7SRuslan ErmilovOtherwise mail is sent to the owner of the crontab.
13007bfccd7SRuslan ErmilovThis
131401e6468SPhilippe Charnieroption is useful if you decide on
132401e6468SPhilippe Charnier.Pa /bin/mail
133401e6468SPhilippe Charnierinstead of
134401e6468SPhilippe Charnier.Pa /usr/lib/sendmail
135401e6468SPhilippe Charnieras
136401e6468SPhilippe Charnieryour mailer when you install cron --
137401e6468SPhilippe Charnier.Pa /bin/mail
1380227791bSRuslan Ermilovdoes not do aliasing, and UUCP
1390227791bSRuslan Ermilovusually does not read its mail.
140401e6468SPhilippe Charnier.Pp
14184f33deaSJordan K. HubbardThe format of a cron command is very much the V7 standard, with a number of
14207bfccd7SRuslan Ermilovupward-compatible extensions.
14307bfccd7SRuslan ErmilovEach line has five time and date fields,
1440435c150SAndrey A. Chernovfollowed by a user name
1450435c150SAndrey A. Chernov(with optional ``:<group>'' and ``/<login-class>'' suffixes)
1460435c150SAndrey A. Chernovif this is the system crontab file,
14707bfccd7SRuslan Ermilovfollowed by a command.
14807bfccd7SRuslan ErmilovCommands are executed by
149401e6468SPhilippe Charnier.Xr cron 8
15084f33deaSJordan K. Hubbardwhen the minute, hour, and month of year fields match the current time,
151401e6468SPhilippe Charnier.Em and
15284f33deaSJordan K. Hubbardwhen at least one of the two day fields (day of month, or day of week)
1534188e025SGiorgos Keramidasmatches the current time (see ``Note'' below).
154401e6468SPhilippe Charnier.Xr cron 8
15584f33deaSJordan K. Hubbardexamines cron entries once every minute.
15684f33deaSJordan K. HubbardThe time and date fields are:
157401e6468SPhilippe Charnier.Bd -literal -offset indent
15884f33deaSJordan K. Hubbardfield         allowed values
15984f33deaSJordan K. Hubbard-----         --------------
16084f33deaSJordan K. Hubbardminute        0-59
16184f33deaSJordan K. Hubbardhour          0-23
162043c578eSMike Pritchardday of month  1-31
163043c578eSMike Pritchardmonth         1-12 (or names, see below)
16484f33deaSJordan K. Hubbardday of week   0-7 (0 or 7 is Sun, or use names)
165401e6468SPhilippe Charnier.Ed
166401e6468SPhilippe Charnier.Pp
16784f33deaSJordan K. HubbardA field may be an asterisk (*), which always stands for ``first\-last''.
168401e6468SPhilippe Charnier.Pp
16907bfccd7SRuslan ErmilovRanges of numbers are allowed.
17007bfccd7SRuslan ErmilovRanges are two numbers separated
17107bfccd7SRuslan Ermilovwith a hyphen.
17207bfccd7SRuslan ErmilovThe specified range is inclusive.
17307bfccd7SRuslan ErmilovFor example,
17484f33deaSJordan K. Hubbard8-11 for an ``hours'' entry specifies execution at hours 8, 9, 10
17584f33deaSJordan K. Hubbardand 11.
176401e6468SPhilippe Charnier.Pp
17707bfccd7SRuslan ErmilovLists are allowed.
17807bfccd7SRuslan ErmilovA list is a set of numbers (or ranges)
17907bfccd7SRuslan Ermilovseparated by commas.
18007bfccd7SRuslan ErmilovExamples: ``1,2,5,9'', ``0-4,8-12''.
181401e6468SPhilippe Charnier.Pp
18207bfccd7SRuslan ErmilovStep values can be used in conjunction with ranges.
18307bfccd7SRuslan ErmilovFollowing
18484f33deaSJordan K. Hubbarda range with ``/<number>'' specifies skips of the number's value
18507bfccd7SRuslan Ermilovthrough the range.
18607bfccd7SRuslan ErmilovFor example, ``0-23/2'' can be used in the hours
18784f33deaSJordan K. Hubbardfield to specify command execution every other hour (the alternative
18807bfccd7SRuslan Ermilovin the V7 standard is ``0,2,4,6,8,10,12,14,16,18,20,22'').
18907bfccd7SRuslan ErmilovSteps are
19084f33deaSJordan K. Hubbardalso permitted after an asterisk, so if you want to say ``every two
19184f33deaSJordan K. Hubbardhours'', just use ``*/2''.
192401e6468SPhilippe Charnier.Pp
19384f33deaSJordan K. HubbardNames can also be used for the ``month'' and ``day of week''
19407bfccd7SRuslan Ermilovfields.
19507bfccd7SRuslan ErmilovUse the first three letters of the particular
1960227791bSRuslan Ermilovday or month (case does not matter).
19707bfccd7SRuslan ErmilovRanges or
19884f33deaSJordan K. Hubbardlists of names are not allowed.
199401e6468SPhilippe Charnier.Pp
20084f33deaSJordan K. HubbardThe ``sixth'' field (the rest of the line) specifies the command to be
20184f33deaSJordan K. Hubbardrun.
20284f33deaSJordan K. HubbardThe entire command portion of the line, up to a newline or %
203401e6468SPhilippe Charniercharacter, will be executed by
204401e6468SPhilippe Charnier.Pa /bin/sh
205401e6468SPhilippe Charnieror by the shell
206401e6468SPhilippe Charnierspecified in the
207401e6468SPhilippe Charnier.Ev SHELL
208401e6468SPhilippe Charniervariable of the cronfile.
20984f33deaSJordan K. HubbardPercent-signs (%) in the command, unless escaped with backslash
21084f33deaSJordan K. Hubbard(\\), will be changed into newline characters, and all data
21184f33deaSJordan K. Hubbardafter the first % will be sent to the command as standard
21284f33deaSJordan K. Hubbardinput.
213401e6468SPhilippe Charnier.Pp
21484f33deaSJordan K. HubbardNote: The day of a command's execution can be specified by two
21507bfccd7SRuslan Ermilovfields \(em day of month, and day of week.
21607bfccd7SRuslan ErmilovIf both fields are
2170227791bSRuslan Ermilovrestricted (ie, are not *), the command will be run when
218401e6468SPhilippe Charnier.Em either
21907bfccd7SRuslan Ermilovfield matches the current time.
22007bfccd7SRuslan ErmilovFor example,
22184f33deaSJordan K. Hubbard``30 4 1,15 * 5''
22284f33deaSJordan K. Hubbardwould cause a command to be run at 4:30 am on the 1st and 15th of each
22384f33deaSJordan K. Hubbardmonth, plus every Friday.
224c3e1da6bSSheldon Hearn.Pp
225c3e1da6bSSheldon HearnInstead of the first five fields,
226a08d12d3SGleb Smirnoffa line may start with
227a08d12d3SGleb Smirnoff.Sq @
228a08d12d3SGleb Smirnoffsymbol followed either by one of eight special strings or by a numeric value.
229a08d12d3SGleb SmirnoffThe recognized special strings are:
230c3e1da6bSSheldon Hearn.Bd -literal -offset indent
231c3e1da6bSSheldon Hearnstring		meaning
232c3e1da6bSSheldon Hearn------		-------
233df799cbaSWarren Block@reboot		Run once, at startup of cron.
234c3e1da6bSSheldon Hearn@yearly		Run once a year, "0 0 1 1 *".
235fd522d40SBill Fumerola@annually	(same as @yearly)
236c3e1da6bSSheldon Hearn@monthly	Run once a month, "0 0 1 * *".
237c3e1da6bSSheldon Hearn@weekly		Run once a week, "0 0 * * 0".
238c3e1da6bSSheldon Hearn@daily		Run once a day, "0 0 * * *".
239c3e1da6bSSheldon Hearn@midnight	(same as @daily)
240c3e1da6bSSheldon Hearn@hourly		Run once an hour, "0 * * * *".
2417a5c30c5SMaxim Sobolev@every_minute	Run once a minute, "*/1 * * * *".
2427a5c30c5SMaxim Sobolev@every_second	Run once a second.
243c3e1da6bSSheldon Hearn.Ed
244a08d12d3SGleb Smirnoff.Pp
245a08d12d3SGleb SmirnoffThe
246a08d12d3SGleb Smirnoff.Sq @
247a08d12d3SGleb Smirnoffsymbol followed by a numeric value has a special notion of running
248*bd6174f7SKyle Evansa job that many seconds after completion of the previous invocation of
249a08d12d3SGleb Smirnoffthe job.
250a08d12d3SGleb SmirnoffUnlike regular syntax, it guarantees not to overlap two or more
251*bd6174f7SKyle Evansinvocations of the same job during normal cron execution.
252*bd6174f7SKyle EvansNote, however, that overlap may occur if the job is running when the file
253*bd6174f7SKyle Evanscontaining the job is modified and subsequently reloaded.
254*bd6174f7SKyle EvansThe first run is scheduled for the specified number of seconds after cron
255*bd6174f7SKyle Evansis started or the crontab entry is reloaded.
256401e6468SPhilippe Charnier.Sh EXAMPLE CRON FILE
257401e6468SPhilippe Charnier.Bd -literal
25884f33deaSJordan K. Hubbard
259d2a864e4SNick Hibma# use /bin/sh to run commands, overriding the default set by cron
26084f33deaSJordan K. HubbardSHELL=/bin/sh
26184f33deaSJordan K. Hubbard# mail any output to `paul', no matter whose crontab this is
26284f33deaSJordan K. HubbardMAILTO=paul
26384f33deaSJordan K. Hubbard#
26484f33deaSJordan K. Hubbard# run five minutes after midnight, every day
26584f33deaSJordan K. Hubbard5 0 * * *       $HOME/bin/daily.job >> $HOME/tmp/out 2>&1
26684f33deaSJordan K. Hubbard# run at 2:15pm on the first of every month -- output mailed to paul
26784f33deaSJordan K. Hubbard15 14 1 * *     $HOME/bin/monthly
26884f33deaSJordan K. Hubbard# run at 10 pm on weekdays, annoy Joe
26984f33deaSJordan K. Hubbard0 22 * * 1-5	mail -s "It's 10pm" joe%Joe,%%Where are your kids?%
27084f33deaSJordan K. Hubbard23 0-23/2 * * * echo "run 23 minutes after midn, 2am, 4am ..., everyday"
27184f33deaSJordan K. Hubbard5 4 * * sun     echo "run at 5 after 4 every sunday"
272a08d12d3SGleb Smirnoff# run at 5 minutes intervals, no matter how long it takes
273a08d12d3SGleb Smirnoff@300		svnlite up /usr/src
274401e6468SPhilippe Charnier.Ed
275401e6468SPhilippe Charnier.Sh SEE ALSO
276bf5cbf35SWolfram Schneider.Xr crontab 1 ,
277bf5cbf35SWolfram Schneider.Xr cron 8
278401e6468SPhilippe Charnier.Sh EXTENSIONS
27984f33deaSJordan K. HubbardWhen specifying day of week, both day 0 and day 7 will be considered Sunday.
280753d686dSRuslan Ermilov.Bx
281753d686dSRuslan Ermilovand
282753d686dSRuslan Ermilov.Tn ATT
283753d686dSRuslan Ermilovseem to disagree about this.
284401e6468SPhilippe Charnier.Pp
28507bfccd7SRuslan ErmilovLists and ranges are allowed to co-exist in the same field.
28607bfccd7SRuslan Ermilov"1-3,7-9" would
287753d686dSRuslan Ermilovbe rejected by
288753d686dSRuslan Ermilov.Tn ATT
289753d686dSRuslan Ermilovor
290753d686dSRuslan Ermilov.Bx
291753d686dSRuslan Ermilovcron -- they want to see "1-3" or "7,8,9" ONLY.
292401e6468SPhilippe Charnier.Pp
29384f33deaSJordan K. HubbardRanges can include "steps", so "1-9/2" is the same as "1,3,5,7,9".
294401e6468SPhilippe Charnier.Pp
29584f33deaSJordan K. HubbardNames of months or days of the week can be specified by name.
296401e6468SPhilippe Charnier.Pp
29707bfccd7SRuslan ErmilovEnvironment variables can be set in the crontab.
29807bfccd7SRuslan ErmilovIn
299753d686dSRuslan Ermilov.Bx
300753d686dSRuslan Ermilovor
301753d686dSRuslan Ermilov.Tn ATT ,
302753d686dSRuslan Ermilovthe
303401e6468SPhilippe Charnierenvironment handed to child processes is basically the one from
304401e6468SPhilippe Charnier.Pa /etc/rc .
305401e6468SPhilippe Charnier.Pp
306753d686dSRuslan ErmilovCommand output is mailed to the crontab owner
307753d686dSRuslan Ermilov.No ( Bx
3080227791bSRuslan Ermilovcannot do this), can be
3090227791bSRuslan Ermilovmailed to a person other than the crontab owner (SysV cannot do this), or the
3100227791bSRuslan Ermilovfeature can be turned off and no mail will be sent at all (SysV cannot do this
31184f33deaSJordan K. Hubbardeither).
312c3e1da6bSSheldon Hearn.Pp
313c3e1da6bSSheldon HearnAll of the
314c3e1da6bSSheldon Hearn.Sq @
315a08d12d3SGleb Smirnoffdirectives that can appear in place of the first five fields
316c3e1da6bSSheldon Hearnare extensions.
317f12a1471SPhilippe Charnier.Sh AUTHORS
31801c2b8acSBaptiste Daroussin.An Paul Vixie Aq Mt paul@vix.com
31981f4b036SSheldon Hearn.Sh BUGS
32036a142c4SRuslan ErmilovIf you are in one of the 70-odd countries that observe Daylight
321f85ad80cSGlen BarberSavings Time, jobs scheduled during the rollback or advance may be
322f85ad80cSGlen Barberaffected if
323f85ad80cSGlen Barber.Xr cron 8
324f85ad80cSGlen Barberis not started with the
325f85ad80cSGlen Barber.Fl s
326f85ad80cSGlen Barberflag.
32736a142c4SRuslan ErmilovIn general, it is not a good idea to schedule jobs during
328f85ad80cSGlen Barberthis period if
329f85ad80cSGlen Barber.Xr cron 8
330f85ad80cSGlen Barberis not started with the
331f85ad80cSGlen Barber.Fl s
332f85ad80cSGlen Barberflag, which is enabled by default.
333f85ad80cSGlen BarberSee
334f85ad80cSGlen Barber.Xr cron 8
335f85ad80cSGlen Barberfor more details.
33681f4b036SSheldon Hearn.Pp
337fd2f39cbSSean FarleyFor US timezones (except parts of AZ and HI) the time shift occurs at
33807bfccd7SRuslan Ermilov2AM local time.
33907bfccd7SRuslan ErmilovFor others, the output of the
34081f4b036SSheldon Hearn.Xr zdump 8
34181f4b036SSheldon Hearnprogram's verbose
34281f4b036SSheldon Hearn.Fl ( v )
34381f4b036SSheldon Hearnoption can be used to determine the moment of time shift.
344