1.\"/* Copyright 1988,1990,1993,1994 by Paul Vixie 2.\" * All rights reserved 3.\" * 4.\" * Distribute freely, except: don't remove my name from the source or 5.\" * documentation (don't take credit for my work), mark your changes (don't 6.\" * get me blamed for your possible bugs), don't alter or remove this 7.\" * notice. May be sold if buildable source is provided to buyer. No 8.\" * warrantee of any kind, express or implied, is included with this 9.\" * software; use at your own risk, responsibility for damages (if any) to 10.\" * anyone resulting from the use of this software rests entirely with the 11.\" * user. 12.\" * 13.\" * Send bug reports, bug fixes, enhancements, requests, flames, etc., and 14.\" * I'll try to keep a version up to date. I can be reached as follows: 15.\" * Paul Vixie <paul@vix.com> uunet!decwrl!vixie!paul 16.\" */ 17.\" 18.\" $FreeBSD$ 19.\" 20.Dd January 24, 1994 21.Dt CRONTAB 5 22.Os 23.Sh NAME 24.Nm crontab 25.Nd tables for driving cron 26.Sh DESCRIPTION 27A 28.Nm 29file contains instructions to the 30.Xr cron 8 31daemon of the general form: ``run this command at this time on this date''. 32Each user has their own crontab, and commands in any given crontab will be 33executed as the user who owns the crontab. 34Uucp and News will usually have 35their own crontabs, eliminating the need for explicitly running 36.Xr su 1 37as part of a cron command. 38.Pp 39Blank lines and leading spaces and tabs are ignored. 40Lines whose first 41non-space character is a pound-sign (#) are comments, and are ignored. 42Note that comments are not allowed on the same line as cron commands, since 43they will be taken to be part of the command. 44Similarly, comments are not 45allowed on the same line as environment variable settings. 46.Pp 47An active line in a crontab will be either an environment setting or a cron 48command. 49An environment setting is of the form, 50.Bd -literal 51 name = value 52.Ed 53.Pp 54where the spaces around the equal-sign (=) are optional, and any subsequent 55non-leading spaces in 56.Em value 57will be part of the value assigned to 58.Em name . 59The 60.Em value 61string may be placed in quotes (single or double, but matching) to preserve 62leading or trailing blanks. 63The 64.Em name 65string may also be placed in quote (single or double, but matching) 66to preserve leading, trailing or inner blanks. 67.Pp 68Several environment variables are set up 69automatically by the 70.Xr cron 8 71daemon. 72.Ev SHELL 73is set to 74.Pa /bin/sh , 75and 76.Ev LOGNAME 77and 78.Ev HOME 79are set from the 80.Pa /etc/passwd 81line of the crontab's owner. 82.Ev HOME 83and 84.Ev SHELL 85may be overridden by settings in the crontab; 86.Ev LOGNAME 87may not. 88.Pp 89(Another note: the 90.Ev LOGNAME 91variable is sometimes called 92.Ev USER 93on 94.Bx 95systems... 96On these systems, 97.Ev USER 98will be set also). 99.Pp 100In addition to 101.Ev LOGNAME , 102.Ev HOME , 103and 104.Ev SHELL , 105.Xr cron 8 106will look at 107.Ev MAILTO 108if it has any reason to send mail as a result of running 109commands in ``this'' crontab. 110If 111.Ev MAILTO 112is defined (and non-empty), mail is 113sent to the user so named. 114.Ev MAILTO 115may also be used to direct mail to multiple recipients 116by seperating recipient users with a comma. 117If 118.Ev MAILTO 119is defined but empty (MAILTO=""), no 120mail will be sent. 121Otherwise mail is sent to the owner of the crontab. 122This 123option is useful if you decide on 124.Pa /bin/mail 125instead of 126.Pa /usr/lib/sendmail 127as 128your mailer when you install cron -- 129.Pa /bin/mail 130doesn't do aliasing, and UUCP 131usually doesn't read its mail. 132.Pp 133The format of a cron command is very much the V7 standard, with a number of 134upward-compatible extensions. 135Each line has five time and date fields, 136followed by a user name 137(with optional ``:<group>'' and ``/<login-class>'' suffixes) 138if this is the system crontab file, 139followed by a command. 140Commands are executed by 141.Xr cron 8 142when the minute, hour, and month of year fields match the current time, 143.Em and 144when at least one of the two day fields (day of month, or day of week) 145matches the current time (see ``Note'' below). 146.Xr cron 8 147examines cron entries once every minute. 148The time and date fields are: 149.Bd -literal -offset indent 150field allowed values 151----- -------------- 152minute 0-59 153hour 0-23 154day of month 1-31 155month 1-12 (or names, see below) 156day of week 0-7 (0 or 7 is Sun, or use names) 157.Ed 158.Pp 159A field may be an asterisk (*), which always stands for ``first\-last''. 160.Pp 161Ranges of numbers are allowed. 162Ranges are two numbers separated 163with a hyphen. 164The specified range is inclusive. 165For example, 1668-11 for an ``hours'' entry specifies execution at hours 8, 9, 10 167and 11. 168.Pp 169Lists are allowed. 170A list is a set of numbers (or ranges) 171separated by commas. 172Examples: ``1,2,5,9'', ``0-4,8-12''. 173.Pp 174Step values can be used in conjunction with ranges. 175Following 176a range with ``/<number>'' specifies skips of the number's value 177through the range. 178For example, ``0-23/2'' can be used in the hours 179field to specify command execution every other hour (the alternative 180in the V7 standard is ``0,2,4,6,8,10,12,14,16,18,20,22''). 181Steps are 182also permitted after an asterisk, so if you want to say ``every two 183hours'', just use ``*/2''. 184.Pp 185Names can also be used for the ``month'' and ``day of week'' 186fields. 187Use the first three letters of the particular 188day or month (case doesn't matter). 189Ranges or 190lists of names are not allowed. 191.Pp 192The ``sixth'' field (the rest of the line) specifies the command to be 193run. 194The entire command portion of the line, up to a newline or % 195character, will be executed by 196.Pa /bin/sh 197or by the shell 198specified in the 199.Ev SHELL 200variable of the cronfile. 201Percent-signs (%) in the command, unless escaped with backslash 202(\\), will be changed into newline characters, and all data 203after the first % will be sent to the command as standard 204input. 205.Pp 206Note: The day of a command's execution can be specified by two 207fields \(em day of month, and day of week. 208If both fields are 209restricted (ie, aren't *), the command will be run when 210.Em either 211field matches the current time. 212For example, 213``30 4 1,15 * 5'' 214would cause a command to be run at 4:30 am on the 1st and 15th of each 215month, plus every Friday. 216.Pp 217Instead of the first five fields, 218one of eight special strings may appear: 219.Bd -literal -offset indent 220string meaning 221------ ------- 222@reboot Run once, at startup. 223@yearly Run once a year, "0 0 1 1 *". 224@annually (same as @yearly) 225@monthly Run once a month, "0 0 1 * *". 226@weekly Run once a week, "0 0 * * 0". 227@daily Run once a day, "0 0 * * *". 228@midnight (same as @daily) 229@hourly Run once an hour, "0 * * * *". 230.Ed 231.Sh EXAMPLE CRON FILE 232.Bd -literal 233 234# use /bin/sh to run commands, overriding the default set by cron 235SHELL=/bin/sh 236# mail any output to `paul', no matter whose crontab this is 237MAILTO=paul 238# 239# run five minutes after midnight, every day 2405 0 * * * $HOME/bin/daily.job >> $HOME/tmp/out 2>&1 241# run at 2:15pm on the first of every month -- output mailed to paul 24215 14 1 * * $HOME/bin/monthly 243# run at 10 pm on weekdays, annoy Joe 2440 22 * * 1-5 mail -s "It's 10pm" joe%Joe,%%Where are your kids?% 24523 0-23/2 * * * echo "run 23 minutes after midn, 2am, 4am ..., everyday" 2465 4 * * sun echo "run at 5 after 4 every sunday" 247.Ed 248.Sh SEE ALSO 249.Xr crontab 1 , 250.Xr cron 8 251.Sh EXTENSIONS 252When specifying day of week, both day 0 and day 7 will be considered Sunday. 253.Bx 254and 255.Tn ATT 256seem to disagree about this. 257.Pp 258Lists and ranges are allowed to co-exist in the same field. 259"1-3,7-9" would 260be rejected by 261.Tn ATT 262or 263.Bx 264cron -- they want to see "1-3" or "7,8,9" ONLY. 265.Pp 266Ranges can include "steps", so "1-9/2" is the same as "1,3,5,7,9". 267.Pp 268Names of months or days of the week can be specified by name. 269.Pp 270Environment variables can be set in the crontab. 271In 272.Bx 273or 274.Tn ATT , 275the 276environment handed to child processes is basically the one from 277.Pa /etc/rc . 278.Pp 279Command output is mailed to the crontab owner 280.No ( Bx 281can't do this), can be 282mailed to a person other than the crontab owner (SysV can't do this), or the 283feature can be turned off and no mail will be sent at all (SysV can't do this 284either). 285.Pp 286All of the 287.Sq @ 288commands that can appear in place of the first five fields 289are extensions. 290.Sh AUTHORS 291.An Paul Vixie Aq paul@vix.com 292.Sh BUGS 293If you're in one of the 70-odd countries that observe Daylight 294Savings Time, jobs scheduled during the rollback or advance will be 295affected. 296In general, it's not a good idea to schedule jobs during 297this period. 298.Pp 299For US timezones (except parts of IN, AZ, and HI) the time shift occurs at 3002AM local time. 301For others, the output of the 302.Xr zdump 8 303program's verbose 304.Fl ( v ) 305option can be used to determine the moment of time shift. 306