Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
CRONTAB(5)		      File Formats Manual		    CRONTAB(5)

NAME
       crontab - tables	for driving cron (ISC Cron V4.1)

DESCRIPTION
       A  crontab file contains	instructions to	the cron(8) daemon of the gen-
       eral form: ``run	this command at	this time on this date''.   Each  user
       has  their  own crontab,	and commands in	any given crontab will be exe-
       cuted as	the user who owns the crontab.	Uucp  and  News	 will  usually
       have  their  own	 crontabs, eliminating the need	for explicitly running
       su(1) as	part of	a cron command.

       Blank lines and leading spaces and tabs are ignored.  Lines whose first
       non-space character is a	pound-sign (#) are comments, and are  ignored.
       Note  that  comments are	not allowed on the same	line as	cron commands,
       since they will be taken	to be part of the  command.   Similarly,  com-
       ments  are  not	allowed	 on the	same line as environment variable set-
       tings.

       An active line in a crontab will	be either an environment setting or  a
       cron command.  An environment setting is	of the form,

	   name	= value

       where the spaces	around the equal-sign (=) are optional,	and any	subse-
       quent non-leading spaces	in value will be part of the value assigned to
       name.   The value string	may be placed in quotes	(single	or double, but
       matching) to preserve leading or	trailing blanks.

       Several environment variables are set up	automatically by  the  cron(8)
       daemon.	SHELL is set to	/bin/sh, and LOGNAME and HOME are set from the
       /etc/passwd  line  of the crontab's owner.  HOME	and SHELL may be over-
       ridden by settings in the crontab; LOGNAME may not.

       (Another	note: the LOGNAME variable is sometimes	 called	 USER  on  BSD
       systems...  on these systems, USER will be set also.)

       In addition to LOGNAME, HOME, and SHELL,	cron(8)	will look at MAILTO if
       it  has	any  reason  to	 send  mail as a result	of running commands in
       ``this''	crontab.  If MAILTO is defined (and non-empty),	mail  is  sent
       to  the	user so	named.	If MAILTO is defined but empty (MAILTO=""), no
       mail will be sent.  Otherwise mail is sent to the owner of the crontab.
       This  option  is	 useful	 if  you  decide  on  /bin/mail	  instead   of
       /usr/lib/sendmail  as  your  mailer  when you install cron -- /bin/mail
       doesn't do aliasing, and	UUCP usually doesn't read its mail.

       The format of a cron command is very much the V7	standard, with a  num-
       ber  of upward-compatible extensions.  Each line	has five time and date
       fields, followed	by a user name if this is  the	system	crontab	 file,
       followed	 by  a	command.   Commands  are  executed by cron(8) when the
       minute, hour, and month of year fields match the	current	time, and when
       at least	one of the two day fields (day of month, or day	of week) match
       the current time	(see ``Note'' below).  cron(8) examines	 cron  entries
       once every minute.  The time and	date fields are:

	      field	     allowed values
	      -----	     --------------
	      minute	     0-59
	      hour	     0-23
	      day of month   1-31
	      month	     0-12 (or names, see below)
	      day of week    0-7 (0 or 7 is Sun, or use	names)

       A field may be an asterisk (*), which always stands for ``first-last''.

       Ranges of numbers are allowed.  Ranges are two numbers separated	with a
       hyphen.	 The  specified	 range is inclusive.  For example, 8-11	for an
       ``hours'' entry specifies execution at hours 8, 9, 10 and 11.

       Lists are allowed.  A list is a set of numbers (or ranges) separated by
       commas.	Examples: ``1,2,5,9'', ``0-4,8-12''.

       Step values can be used in conjunction with ranges.  Following a	 range
       with  ``/<number>''  specifies  skips of	the number's value through the
       range.  For example, ``0-23/2'' can be used in the hours	field to spec-
       ify command execution every other hour (the alternative in the V7 stan-
       dard is ``0,2,4,6,8,10,12,14,16,18,20,22'').  Steps are also  permitted
       after  an asterisk, so if you want to say ``every two hours'', just use
       ``*/2''.

       Names can also be used for the ``month''	and ``day  of  week''  fields.
       Use  the	 first	three  letters	of  the	 particular day	or month (case
       doesn't matter).	 Ranges	or lists of names are not allowed.

       The ``sixth'' field (the	rest of	the line) specifies the	command	to  be
       run.   The  entire  command  portion  of	the line, up to	a newline or %
       character, will be executed by /bin/sh or by the	shell specified	in the
       SHELL variable of the cronfile.	Percent-signs (%) in the command,  un-
       less  escaped  with backslash (\), will be changed into newline charac-
       ters, and all data after	the first % will be sent  to  the  command  as
       standard	input.

       Note:  The  day of a command's execution	can be specified by two	fields
       -- day of month,	and day	of week.  If both fields are  restricted  (ie,
       aren't  *),  the	command	will be	run when either	field matches the cur-
       rent time.  For example,
       ``30 4 1,15 * 5'' would cause a command to be run at 4:30 am on the 1st
       and 15th	of each	month, plus every Friday.

EXAMPLE	CRON FILE
       # use /bin/sh to	run commands, no matter	what /etc/passwd says
       SHELL=/bin/sh
       # mail any output to `paul', no matter whose crontab this is
       MAILTO=paul
       #
       # run five minutes after	midnight, every	day
       5 0 * * *       $HOME/bin/daily.job >> $HOME/tmp/out 2>&1
       # run at	2:15pm on the first of every month -- output mailed to paul
       15 14 1 * *     $HOME/bin/monthly
       # run at	10 pm on weekdays, annoy Joe
       0 22 * *	1-5   mail -s "It's 10pm" joe%Joe,%%Where are your kids?%
       23 0-23/2 * * * echo "run 23 minutes after midn,	2am, 4am ..., everyday"
       5 4 * * sun     echo "run at 5 after 4 every sunday"

SEE ALSO
       cron(8),	crontab(1)

EXTENSIONS
       When specifying day of week, both day 0 and day 7  will	be  considered
       Sunday.	BSD and	ATT seem to disagree about this.

       Lists  and ranges are allowed to	co-exist in the	same field.  "1-3,7-9"
       would be	rejected by ATT	or BSD cron --	they  want  to	see  "1-3"  or
       "7,8,9" ONLY.

       Ranges can include "steps", so "1-9/2" is the same as "1,3,5,7,9".

       Names of	months or days of the week can be specified by name.

       Environment  variables  can  be set in the crontab.  In BSD or ATT, the
       environment handed  to  child  processes	 is  basically	the  one  from
       /etc/rc.

       Command	output is mailed to the	crontab	owner (BSD can't do this), can
       be mailed to a person other than	 the  crontab  owner  (SysV  can't  do
       this), or the feature can be turned off and no mail will	be sent	at all
       (SysV can't do this either).

AUTHOR
       Paul Vixie <vixie@isc.org>

4th Berkeley Distribution	24 January 1994			    CRONTAB(5)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=crontab&sektion=5&manpath=FreeBSD+Ports+15.0.quarterly>

home | help