summaryrefslogtreecommitdiff
path: root/usr.sbin/cron
diff options
context:
space:
mode:
authorAaron Campbell <aaron@cvs.openbsd.org>1999-06-18 02:11:45 +0000
committerAaron Campbell <aaron@cvs.openbsd.org>1999-06-18 02:11:45 +0000
commitcc9bceedbd9c087c51572acae302b5e12cb44f9f (patch)
tree96d9a788a8d351317950e4ecf9d58aa37c1c9bb0 /usr.sbin/cron
parent62077e03b61180ab9234e9ea62cb698a2ffff106 (diff)
new mandoc cron(8), crontab(1), and crontab(5) man pages; kwesterback@home.com
Diffstat (limited to 'usr.sbin/cron')
-rw-r--r--usr.sbin/cron/cron.8109
-rw-r--r--usr.sbin/cron/crontab.1160
-rw-r--r--usr.sbin/cron/crontab.5518
3 files changed, 520 insertions, 267 deletions
diff --git a/usr.sbin/cron/cron.8 b/usr.sbin/cron/cron.8
index 07847c4e86d..ca6ffeb1a28 100644
--- a/usr.sbin/cron/cron.8
+++ b/usr.sbin/cron/cron.8
@@ -15,62 +15,79 @@
.\" * Paul Vixie <paul@vix.com> uunet!decwrl!vixie!paul
.\" */
.\"
-.\" $Id: cron.8,v 1.4 1999/06/05 22:16:34 aaron Exp $
+.\" $Id: cron.8,v 1.5 1999/06/18 02:11:44 aaron Exp $
.\"
-.TH CRON 8 "20 December 1993"
-.UC 4
-.SH NAME
-cron \- daemon to execute scheduled commands (Vixie Cron)
-.SH SYNOPSIS
-cron
-.SH DESCRIPTION
-.I Cron
-should be started from /etc/rc or /etc/rc.local. It will return immediately,
-so you don't need to start it with '&'.
-.PP
-.I Cron
-searches /var/cron/tabs for crontab files which are named after accounts in
-/etc/passwd; crontabs found are loaded into memory.
-.I Cron
-also searches for /etc/crontab which is in a different format (see
-.IR crontab(5)).
-.I Cron
-then wakes up every minute, examining all stored crontabs, checking each
-command to see if it should be run in the current minute. When executing
-commands, any output is mailed to the owner of the crontab (or to the user
-named in the MAILTO environment variable in the crontab, if such exists).
-.PP
+.Dd 6 June, 1999
+.Os
+.Dt CRON 8
+.Sh NAME
+.Nm cron
+.Nd daemon to execute scheduled commands (Vixie Cron)
+.Sh SYNOPSIS
+.Nm cron
+.Sh DESCRIPTION
+.Nm
+should be started from
+.Pa /etc/rc
+or
+.Pa /etc/rc.local .
+It will return immediately, so you don't need to start it with
+.Ql \&& .
+.Pp
+.Nm
+searches its spool directory
+.Pf ( Pa /var/cron/tabs Ns )
+for
+.Xr crontab 5
+files which are named after accounts in
+.Pa /etc/passwd ;
+crontabs found are loaded into memory.
+.Nm
+also searches for
+.Pa /etc/crontab
+which is in a different format (see
+.Xr crontab 5 ) .
+.Nm
+then wakes up every minute, examining all loaded crontabs, checking each
+command to see if it should be run in the current minute. When executing
+commands, any output is mailed to the user named in the
+.Ev MAILTO
+environment variable in the crontab, or to the owner of the crontab if
+.Ev MAILTO
+is not present.
+.Pp
Additionally,
-.I cron
-checks each minute to see if its spool directory's modtime (or the modtime
-on
-.IR /etc/crontab)
+.Nm
+checks each minute to see if its spool directory's modtime (or the modtime on
+.Pa /etc/crontab )
has changed, and if it has,
-.I cron
-will then examine the modtime on all crontabs and reload those which have
-changed. Thus
-.I cron
-need not be restarted whenever a crontab file is modified. Note that the
-.IR Crontab (1)
+.Nm
+examines the modtime on all crontabs and reloads those which have
+changed. Thus
+.Nm
+need not be restarted whenever a crontab file is modified. Note that the
+.Xr crontab 1
command updates the modtime of the spool directory whenever it changes a
crontab.
-.PP
+.Pp
Special considerations exist when the clock is changed by less than 3
-hours, for example at the beginning and end of Daylight Saving
-Time. If the time has moved forwards, those jobs which would have
+hours; for example, at the beginning and end of Daylight Saving
+Time. If the time has moved forward, those jobs which would have
run in the time that was skipped will be run soon after the change.
-Conversely, if the time has moved backwards by less than 3 hours,
+Conversely, if the time has moved backward by less than 3 hours,
those jobs that fall into the repeated time will not be run.
-.PP
-Only jobs that run at a particular time (not specified as
-@hourly, nor with '*' in the hour or minute specifier) are
+.Pp
+Only jobs that run at a particular time (not specified as @hourly, nor with
+.Ql *
+in the hour or minute specifier)
+are
affected. Jobs which are specified with wildcards are run based on the
new time immediately.
-.PP
+.Pp
Clock changes of more than 3 hours are considered to be corrections to
the clock, and the new time is used immediately.
-.SH "SEE ALSO"
-crontab(1), crontab(5)
-.SH AUTHOR
-.nf
+.Sh SEE ALSO
+.Xr crontab 1 ,
+.Xr crontab 5
+.Sh AUTHOR
Paul Vixie <paul@vix.com>
diff --git a/usr.sbin/cron/crontab.1 b/usr.sbin/cron/crontab.1
index 3801abf3b30..ff3506049d9 100644
--- a/usr.sbin/cron/crontab.1
+++ b/usr.sbin/cron/crontab.1
@@ -15,86 +15,128 @@
.\" * Paul Vixie <paul@vix.com> uunet!decwrl!vixie!paul
.\" */
.\"
-.\" $Id: crontab.1,v 1.1 1995/10/18 08:47:30 deraadt Exp $
+.\" $Id: crontab.1,v 1.2 1999/06/18 02:11:44 aaron Exp $
.\"
-.TH CRONTAB 1 "29 December 1993"
-.UC 4
-.SH NAME
-crontab \- maintain crontab files for individual users (V3)
-.SH SYNOPSIS
-crontab [ -u user ] file
+.Dd 8 June, 1999
+.Os
+.Dt CRONTAB 1
+.Sh NAME
+.Nm crontab
+.Nd maintain crontab files for individual users (V3)
+.Sh SYNOPSIS
+.Nm
+.Op Fl u Ar user
+.Ar file
.br
-crontab [ -u user ] [ -l | -r | -e ]
-.SH DESCRIPTION
-.I Crontab
-is the program used to install, deinstall or list the tables
+.Nm
+.Op Fl u Ar user
+.Oo
+.Fl l No \&|
+.Fl r No \&|
+.Fl e
+.Oc
+.Sh DESCRIPTION
+.Nm
+is the program used to install, deinstall, or list the tables
used to drive the
-.IR cron (8)
-daemon in Vixie Cron. Each user can have their own crontab, and though
-these are files in /var, they are not intended to be edited directly.
-.PP
+.Xr cron 8
+daemon in Vixie Cron. Each user can have their own
+.Xr crontab 5 ,
+and though these are files in
+.Pa /var/cron/tabs ,
+they are not intended to be edited directly.
+.Pp
If the
-.I allow
-file exists, then you must be listed therein in order to be allowed to use
-this command. If the
-.I allow
+.Pa /var/cron/allow
+file exists, then you must be listed therein in order to use
+.Nm crontab .
+If the
+.Pa /var/cron/allow
file does not exist but the
-.I deny
-file does exist, then you must \fBnot\fR be listed in the
-.I deny
-file in order to use this command. If neither of these files exists, then
+.Pa /var/cron/deny
+file does exist, then you must
+.Em not
+be listed in the
+.Pa /var/cron/deny
+file in order to use
+.Nm crontab .
+If neither of these files exists, then
depending on site-dependent configuration parameters, only the super user
-will be allowed to use this command, or all users will be able to use this
-command.
-.PP
+will be allowed to use
+.Nm crontab ,
+or all users will be able to use it.
+.Pp
If the
-.I -u
-option is given, it specifies the name of the user whose crontab is to be
-tweaked. If this option is not given,
-.I crontab
-examines "your" crontab, i.e., the crontab of the person executing the
-command. Note that
-.IR su (8)
+.Fl u
+option is given,
+.Ar user
+specifies the name of the user whose
+.Xr crontab 5
+is to be
+tweaked. If this option is not given,
+.Nm
+examines
+.Dq your
+.Xr crontab 5 ;
+i.e., the
+crontab of the person executing the command.
+Note that
+.Xr su 8
can confuse
-.I crontab
+.Nm
and that if you are running inside of
-.IR su (8)
+.Xr su 8
you should always use the
-.I -u
+.Fl u
option for safety's sake.
-.PP
+.Pp
The first form of this command is used to install a new crontab from some
-named file or standard input if the pseudo-filename ``-'' is given.
-.PP
+named file, or standard input if the pseudo-filename
+.Sq Fl
+is given.
+.Pp
The
-.I -l
+.Fl l
option causes the current crontab to be displayed on standard output.
-.PP
+.Pp
The
-.I -r
+.Fl r
option causes the current crontab to be removed.
-.PP
+.Pp
The
-.I -e
+.Fl e
option is used to edit the current crontab using the editor specified by
-the \s-1VISUAL\s+1 or \s-1EDITOR\s+1 environment variables. After you exit
-from the editor, the modified crontab will be installed automatically.
-.SH "SEE ALSO"
-crontab(5), cron(8)
-.SH FILES
-.nf
-/var/cron/allow
-/var/cron/deny
-.fi
-.SH STANDARDS
+the
+.Ev VISUAL
+or
+.Ev EDITOR
+environment variables. After you exit
+from the editor, the modified
+.Xr crontab 5
+will be installed automatically.
+.Sh FILES
+.Bl -tag -width "/var/cron/allow" -compact
+.It Pa /var/cron/allow
+list of users allowed to use crontab
+.It Pa /var/cron/deny
+list of users prohibited from using crontab
+.It Pa /var/cron/tabs
+directory of individual crontabs
+.El
+.Sh SEE ALSO
+.Xr crontab 5 ,
+.Xr cron 8
+.Sh STANDARDS
The
-.I crontab
-command conforms to IEEE Std1003.2-1992 (``POSIX''). This new command syntax
+.Nm
+utility is compliant with the
+.St -p1003.2-92
+specification.
+This new command syntax
differs from previous versions of Vixie Cron, as well as from the classic
SVR3 syntax.
-.SH DIAGNOSTICS
+.Sh DIAGNOSTICS
A fairly informative usage message appears if you run it with a bad command
line.
-.SH AUTHOR
-.nf
+.Sh AUTHOR
Paul Vixie <paul@vix.com>
diff --git a/usr.sbin/cron/crontab.5 b/usr.sbin/cron/crontab.5
index b6a83d10665..5db64aa14f5 100644
--- a/usr.sbin/cron/crontab.5
+++ b/usr.sbin/cron/crontab.5
@@ -15,164 +15,341 @@
.\" * Paul Vixie <paul@vix.com> uunet!decwrl!vixie!paul
.\" */
.\"
-.\" $Id: crontab.5,v 1.4 1999/06/05 22:16:35 aaron Exp $
-.\"
-.TH CRONTAB 5 "24 January 1994"
-.UC 4
-.SH NAME
-crontab \- tables for driving cron
-.SH DESCRIPTION
+.\" $Id: crontab.5,v 1.5 1999/06/18 02:11:44 aaron Exp $
+.\"
+.Dd 8 June, 1999
+.Os
+.Dt CRONTAB 5
+.Sh NAME
+.Nm crontab
+.Nd tables for driving cron
+.Sh DESCRIPTION
A
-.I crontab
+.Nm
file contains instructions to the
-.IR cron (8)
-daemon of the general form: ``run this command at this time on this date''.
-Each user has their own crontab, and commands in any given crontab will be
-executed as the user who owns the crontab. Uucp and News will usually have
-their own crontabs, eliminating the need for explicitly running
-.IR su (1)
-as part of a cron command.
-.PP
-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, comments are not
+.Xr cron 8
+daemon of the general form:
+.Do
+at these times on these dates run this command
+.Dc .
+There may be a system
+.Nm crontab
+.Pf ( Pa /etc/crontab )
+and each user may have their own
+.Nm crontab
+.Pf ( Pa /var/cron/tabs/<user> ) .
+Commands in any given
+.Nm
+will be
+executed either as the user who owns the
+.Nm
+or, in the case of the system
+.Nm crontab ,
+as the user specified in the command line.
+Uucp and News will usually each have
+their own
+.Nm crontab ,
+eliminating the need for explicitly running
+.Xr su 1
+as part of a
+.Xr cron 8
+command.
+.Pp
+While a
+.Nm
+is a text file, it is not intended to be directly edited.
+Creation, modification, and removal of a
+.Nm
+should be done using
+.Xr crontab 1 .
+.Pp
+Blank lines, leading spaces, and tabs are ignored. Lines whose first
+non-space character is a pound sign
+.Pq Ql #
+are comments, and are ignored.
+Note that comments are not allowed on the same line as
+.Xr cron 8
+commands, since
+they will be taken to be part of the command. Similarly, comments are not
allowed on the same line as environment variable settings.
-.PP
-An active line in a crontab will be either an environment setting or a cron
-command. An environment setting is of the form,
-.PP
- name = value
-.PP
-where the spaces around the equal-sign (=) are optional, and any subsequent
-non-leading spaces in
-.I value
+.Pp
+An active line in a
+.Nm
+is either an environment variable setting or a
+.Xr cron 8
+command.
+.Pp
+.Em Environment Variable Settings
+.Pp
+Environment variable settings create the environment
+any command in the
+.Nm
+is run in. An environment variable setting is of the form:
+.Pp
+.Dl name \&= value
+.Pp
+where the spaces around the equal-sign
+.Pq Ql =
+are optional, and any subsequent non-leading spaces in
+.Fa value
will be part of the value assigned to
-.IR name .
+.Fa name .
The
-.I value
-string may be placed in quotes (single or double, but matching) to preserve
-leading or trailing blanks.
-.PP
-Several environment variables are set up
-automatically by the
-.IR cron (8)
+.Fa value
+string may be placed in quotes
+.Pq single or double , but matching
+to preserve leading or trailing blanks.
+.Pp
+Several environment variables are set automatically by the
+.Xr 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 overridden by settings in the crontab; LOGNAME may not.
-.PP
-(Another note: the LOGNAME variable is sometimes called USER on BSD systems...
-on these systems, USER will be set also.)
-.PP
-In addition to LOGNAME, HOME, and SHELL,
-.IR 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
+.Ev SHELL
+is set to
+.Pa /bin/sh ,
+and
+.Ev LOGNAME
+and
+.Ev HOME
+are set from the
+.Pa /etc/passwd
+line of the
+.Nm crontab Ns \&'s
+owner.
+.Ev HOME
+and
+.Ev SHELL
+may be overridden by settings in the
+.Nm crontab ;
+.Ev LOGNAME
+may not.
+.Pp
+Note: on BSD systems the
+.Ev LOGNAME
+variable is sometimes called
+.Ev USER .
+On
+.Ox ,
+.Xr cron 8
+will set both
+.Ev USER
+and
+.Ev LOGNAME
+to the same value.
+.Pp
+In addition to
+.Ev LOGNAME ,
+.Ev HOME ,
+and
+.Ev SHELL ,
+.Xr cron 8
+will look at
+.Ev MAILTO
+if it has any reason to send mail as a result of running
+commands in
+.Dq this
+.Nm crontab .
+If
+.Ev MAILTO
+is defined (and non-empty),
+mail is sent to the user so named. If
+.Ev MAILTO
+is defined but empty
+.Pq Ev MAILTO \&= Sq ,
+no
+mail will be sent. Otherwise mail is sent to the owner of the
+.Nm crontab .
+This option is useful if you decide on
+.Pa /bin/mail
+instead of
+.Pa /usr/lib/sendmail
+as
+your mailer when you install
+.Xr cron 8
+\(em
+.Pa /bin/mail
+doesn't do aliasing, and
+.Tn UUCP
usually doesn't read its mail.
-.PP
-The format of a cron command is very much the V7 standard, with a number 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
-.IR cron (8)
-when the minute, hour, and month of year fields match the current time,
-.I and
-when at least one of the two day fields (day of month, or day of week)
-match the current time (see ``Note'' below).
-.IR cron (8)
-examines cron entries once every minute.
-The time and date fields are:
-.IP
-.ta 1.5i
-field allowed values
-.br
------ --------------
-.br
-minute 0-59
-.br
-hour 0-23
-.br
-day of month 1-31
-.br
-month 1-12 (or names, see below)
-.br
-day of week 0-7 (0 or 7 is Sun, or use names)
-.br
-.PP
-A field may be an asterisk (*), which always stands for ``first\-last''.
-.PP
-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.
-.PP
-Lists are allowed. A list is a set of numbers (or ranges)
-separated by commas. Examples: ``1,2,5,9'', ``0-4,8-12''.
-.PP
-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
+.Pp
+.Em cron Commands
+.Pp
+The format of a
+.Xr cron 8
+command is very much the V7 standard, with a number of
+upward-compatible extensions. Lines in the system
+.Nm
+have six fields in the the form:
+.Bd -ragged -offset indent
+.Ar minute
+.Ar hour
+.Ar day\-of\-month
+.Ar month
+.Ar day\-of\-week
+.Ar user
+.Ar command
+.Ed
+.Pp
+while lines in a user
+.Nm
+have five fields in the form:
+.Bd -ragged -offset indent
+.Ar minute
+.Ar hour
+.Ar day\-of\-month
+.Ar month
+.Ar day\-of\-week
+.Ar command
+.Ed
+.Pp
+Fields are separated by blanks or tabs.
+The allowed values for the fields are:
+.Pp
+.Bl -tag -width "day-of-month" -compact -offset indent
+.It field
+allowed values
+.It -----
+--------------
+.It Ar minute
+* or 0\-59
+.It Ar hour
+* or 0\-23
+.It Ar day\&-of\&-month
+* or 1-31
+.It Ar month
+* or 1-12 or a name (see below)
+.It Ar day\&-of\&-week
+* or 0-7 or a name (0 or 7 is Sunday)
+.It Ar user
+a valid username
+.It Ar command
+text
+.El
+.Pp
+Lists are allowed. A list is a set of numbers (or ranges)
+separated by commas. Examples:
+.Sm off
+.Dq 1 , 2 , 5 , 9 ,
+.Dq 0\&-4 , 8\&-12 .
+.Sm on
+.Pp
+Ranges of numbers are allowed. Ranges are two numbers separated
+with a hyphen. The specified range is inclusive. For example,
+8\-11 for an
+.Fa hour
+entry specifies execution at hours 8, 9, 10 and 11.
+.Pp
+Step values can be used in conjunction with ranges. Following
+a range with
+.No \&/ Ns Ar number
+specifies skips of
+.Fa number
+through the range. For example,
+.Dq 0-23/2
+can be used in the
+.Fa hour
field to specify command execution every other hour (the alternative
-in the V7 standard 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''.
-.PP
-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
+in the V7 standard is
+.Dq 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
+.Dq every two hours ,
+just use
+.Dq \&*\&/2 .
+.Pp
+An asterisk
+.Pq Ql *
+is short form for a range of all allowed values.
+.Pp
+Names can be used in the
+.Fa month
+and
+.Fa 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.
-.PP
-The ``sixth'' field (the rest of the line) specifies the command to be
+.Pp
+The
+.Fa command
+field (the rest of the line) is 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, unless escaped with backslash
-(\\), will be changed into newline characters, and all data
-after the first % will be sent to the command as standard
-input.
-.PP
+character, will be executed by
+.Pa /bin/sh
+or by the shell
+specified in the
+.Ev SHELL
+variable of the
+.Nm crontab .
+Percent signs
+.Pq Ql %
+in the command, unless escaped with a backslash
+.Pq Ql \e ,
+will be changed into newline characters, and all data
+after the first
+.Ql %
+will be sent to the command as standard input.
+.Pp
+Commands are executed by
+.Xr cron 8
+when the
+.Fa minute ,
+.Fa hour ,
+and
+.Fa month
+fields match the current time,
+.Em and
+when at least one of the two day fields
+.Pf ( Fa day\&-of\&-month
+or
+.Fa day\&-of\&-week ,
+see Note below) match the current time.
+.Xr cron 8
+examines
+.Nm
+entries once every minute.
+.Pp
Note: The day of a command's execution can be specified by two
-fields \(em day of month, and day of week. If both fields are
-restricted (ie, aren't *), the command will be run when
-.I either
-field matches the current time. For example,
-.br
-``30 4 1,15 * 5''
+fields \(em
+.Ar day\&-of\&-month
+and
+.Ar day\&-of\&-week .
+If both fields are
+restricted (i.e., aren't *), the command will be run when
+.Em either
+field matches the current time. For example,
+.Pp
+.Dl 30 4 1\&,15 \&* 5
+.Pp
would cause a command to be run at 4:30 am on the 1st and 15th of each
month, plus every Friday.
-.PP
+.Pp
Instead of the first five fields, one of eight special strings may appear:
-.IP
-.ta 1.5i
-string meaning
-.br
------- -------
-.br
-@reboot Run once, at startup.
-.br
-@yearly Run once a year, "0 0 1 1 *".
-.br
-@annually (same as @yearly)
-.br
-@monthly Run once a month, "0 0 1 * *".
-.br
-@weekly Run once a week, "0 0 * * 0".
-.br
-@daily Run once a day, "0 0 * * *".
-.br
-@midnight (same as @daily)
-.br
-@hourly Run once an hour, "0 * * * *".
-.br
-.SH EXAMPLE CRON FILE
-.nf
-
+.Pp
+.Bl -tag -width "@annually" -offset indent -compact
+.It string
+meaning
+.It ------
+-------
+.It @reboot
+Run once, at
+.Xr cron 8
+startup.
+.It @yearly
+Run every January 1, "0 0 1 1 *".
+.It @annually
+(same as @yearly).
+.It @monthly
+Run the first day of every month, "0 0 1 * *".
+.It @weekly
+Run every Sunday, "0 0 * * 0".
+.It @daily
+Run every midnight, "0 0 * * *".
+.It @midnight
+(same as @daily).
+.It @hourly
+Run every hour, on the hour, "0 * * * *".
+.El
+.Sh EXAMPLES
+.Bd -literal
# 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
@@ -186,30 +363,47 @@ MAILTO=paul
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"
-.fi
-.SH SEE ALSO
-cron(8), crontab(1)
-.SH EXTENSIONS
-When specifying day of week, both day 0 and day 7 will be considered Sunday.
+.Ed
+.Sh SEE ALSO
+.Xr crontab 1 ,
+.Xr cron 8
+.Sh EXTENSIONS
+When specifying
+.Fa day\&-of\&-week ,
+both day 0 and day 7 will be considered Sunday.
BSD and ATT seem to disagree about this.
-.PP
-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.
-.PP
-Ranges can include "steps", so "1-9/2" is the same as "1,3,5,7,9".
-.PP
-Names of months or days of the week can be specified by name.
-.PP
-Environment variables can be set in the crontab. In BSD or ATT, the
+.Pp
+Lists and ranges are allowed to co-exist in the same field.
+.Dq 1\&-3,7\&-9
+would
+be rejected by ATT or BSD
+.Xr cron
+\(em they want to see
+.Dq 1\&-3
+or
+.Dq 7,8,9
+.Em only .
+.Pp
+Ranges can include
+.Dq steps ,
+so
+.Dq 1-9/2
+is the same as
+.Dq 1,3,5,7,9 .
+.Pp
+Months or days of the week can be specified by name.
+.Pp
+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.
-.PP
+.Pp
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).
-.PP
-All of the `@' commands that can appear in place of the first five fields
+.Pp
+All of the
+.Ql @
+commands that can appear in place of the first five fields
are extensions.
-.SH AUTHOR
-.nf
+.Sh AUTHOR
Paul Vixie <paul@vix.com>