Provided by: manpages-posix_2013a-1_all bug

PROLOG

       This  manual  page  is part of the POSIX Programmer's Manual.  The Linux implementation of this interface
       may differ (consult the corresponding Linux manual page for details of Linux behavior), or the  interface
       may not be implemented on Linux.

NAME

       crontab — schedule periodic background work

SYNOPSIS

       crontab [file]

       crontab [−e|−l|−r]

DESCRIPTION

       The  crontab  utility shall create, replace, or edit a user's crontab entry; a crontab entry is a list of
       commands and the times at which they shall be executed. The new crontab entry can be input by  specifying
       file  or  input  from  standard  input  if  no file operand is specified, or by using an editor, if −e is
       specified.

       Upon execution of a command from a crontab entry, the implementation shall supply a default  environment,
       defining at least the following environment variables:

       HOME      A pathname of the user's home directory.

       LOGNAME   The user's login name.

       PATH      A string representing a search path guaranteed to find all of the standard utilities.

       SHELL     A  pathname  of the command interpreter. When crontab is invoked as specified by this volume of
                 POSIX.1‐2008, the value shall be a pathname for sh.

       The values of these variables when crontab is invoked as specified by this volume of  POSIX.1‐2008  shall
       not affect the default values provided when the scheduled command is run.

       If standard output and standard error are not redirected by commands executed from the crontab entry, any
       generated output or errors shall be mailed, via an implementation-defined method, to the user.

       Users  shall be permitted to use crontab if their names appear in the file cron.allow which is located in
       an implementation-defined directory.  If that file does not exist, the file cron.deny, which  is  located
       in  an  implementation-defined  directory, shall be checked to determine whether the user shall be denied
       access to crontab.  If neither file exists, only a process with appropriate privileges shall  be  allowed
       to  submit  a job. If only cron.deny exists and is empty, global usage shall be permitted. The cron.allow
       and cron.deny files shall consist of one user name per line.

OPTIONS

       The crontab utility shall conform to the Base Definitions volume of POSIX.1‐2008, Section  12.2,  Utility
       Syntax Guidelines.

       The following options shall be supported:

       −e        Edit  a  copy  of  the  invoking  user's crontab entry, or create an empty entry to edit if the
                 crontab entry does not exist. When editing is complete, the entry shall  be  installed  as  the
                 user's crontab entry.

       −l        (The letter ell.) List the invoking user's crontab entry.

       −r        Remove the invoking user's crontab entry.

OPERANDS

       The following operand shall be supported:

       file      The  pathname  of a file that contains specifications, in the format defined in the INPUT FILES
                 section, for crontab entries.

STDIN

       See the INPUT FILES section.

INPUT FILES

       In the POSIX locale, the user or application shall ensure that a crontab entry is a text file  consisting
       of  lines of six fields each.  The fields shall be separated by <blank> characters. The first five fields
       shall be integer patterns that specify the following:

        1. Minute [0,59]

        2. Hour [0,23]

        3. Day of the month [1,31]

        4. Month of the year [1,12]

        5. Day of the week ([0,6] with 0=Sunday)

       Each of these patterns can be either an <asterisk> (meaning all valid values), an element, or a  list  of
       elements separated by <comma> characters. An element shall be either a number or two numbers separated by
       a  <hyphen> (meaning an inclusive range). The specification of days can be made by two fields (day of the
       month and day of the week). If month, day of month, and day of week are all <asterisk> characters,  every
       day shall be matched. If either the month or day of month is specified as an element or list, but the day
       of  week  is  an <asterisk>, the month and day of month fields shall specify the days that match. If both
       month and day of month are specified as an <asterisk>, but day of week is an element or list,  then  only
       the  specified  days  of  the week match. Finally, if either the month or day of month is specified as an
       element or list, and the day of week is also specified as an element  or  list,  then  any  day  matching
       either the month and day of month, or the day of week, shall be matched.

       The  sixth  field  of a line in a crontab entry is a string that shall be executed by sh at the specified
       times. A <percent-sign> character in this field shall  be  translated  to  a  <newline>.   Any  character
       preceded  by  a  <backslash> (including the '%') shall cause that character to be treated literally. Only
       the first line (up to a '%' or end-of-line) of the  command  field  shall  be  executed  by  the  command
       interpreter. The other lines shall be made available to the command as standard input.

       Blank lines and those whose first non-<blank> is '#' shall be ignored.

       The  text files cron.allow and cron.deny, which are located in an implementation-defined directory, shall
       contain zero or more user names, one per line, of users  who  are,  respectively,  authorized  or  denied
       access to the service underlying the crontab utility.

ENVIRONMENT VARIABLES

       The following environment variables shall affect the execution of crontab:

       EDITOR    Determine the editor to be invoked when the −e option is specified. The default editor shall be
                 vi.

       LANG      Provide a default value for the internationalization variables that are unset or null. (See the
                 Base  Definitions  volume  of POSIX.1‐2008, Section 8.2, Internationalization Variables for the
                 precedence  of  internationalization  variables  used  to  determine  the  values   of   locale
                 categories.)

       LC_ALL    If  set  to a non-empty string value, override the values of all the other internationalization
                 variables.

       LC_CTYPE  Determine the locale for the interpretation of sequences of bytes of text  data  as  characters
                 (for example, single-byte as opposed to multi-byte characters in arguments and input files).

       LC_MESSAGES
                 Determine  the  locale  that  should  be  used  to affect the format and contents of diagnostic
                 messages written to standard error.

       NLSPATH   Determine the location of message catalogs for the processing of LC_MESSAGES.

ASYNCHRONOUS EVENTS

       Default.

STDOUT

       If the −l option is specified, the crontab entry shall be written to the standard output.

STDERR

       The standard error shall be used only for diagnostic messages.

OUTPUT FILES

       None.

EXTENDED DESCRIPTION

       None.

EXIT STATUS

       The following exit values shall be returned:

        0    Successful completion.

       >0    An error occurred.

CONSEQUENCES OF ERRORS

       The user's crontab entry is not submitted, removed, edited, or listed.

       The following sections are informative.

APPLICATION USAGE

       The format of the crontab entry shown here is guaranteed only for the POSIX locale. Other cultures may be
       supported with substantially different interfaces, although implementations  are  encouraged  to  provide
       comparable levels of functionality.

       The  default settings of the HOME, LOGNAME, PATH, and SHELL variables that are given to the scheduled job
       are not affected by the settings of those variables when crontab is run; as stated,  they  are  defaults.
       The  text about ``invoked as specified by this volume of POSIX.1‐2008'' means that the implementation may
       provide extensions that allow these variables to be affected at runtime, but that the user  has  to  take
       explicit  action in order to access the extension, such as give a new option flag or modify the format of
       the crontab entry.

       A typical user error is to type only crontab; this causes the system to wait for the new crontab entry on
       standard input. If end-of-file is typed (generally <control>‐D), the crontab  entry  is  replaced  by  an
       empty  file. In this case, the user should type the interrupt character, which prevents the crontab entry
       from being replaced.

EXAMPLES

        1. Clean up core files every weekday morning at 3:15 am:

               15 3 * * 1-5 find "$HOME" −name core −exec rm −f {} + 2>/dev/null

        2. Mail a birthday greeting:

               0 12 14 2 * mailx john%Happy Birthday!%Time for lunch.

        3. As an example of specifying the two types of days:

               0 0 1,15 * 1

           would run a command on the first and fifteenth of each month, as well as on every Monday. To  specify
           days by only one field, the other field should be set to '*'; for example:

               0 0 * * 1

           would run a command only on Mondays.

RATIONALE

       All  references to a cron daemon and to cron files have been omitted. Although historical implementations
       have used this arrangement, there is no reason to limit future implementations.

       This description of crontab is designed to support only users with normal privileges. The format  of  the
       input  is  based  on  the  System V crontab; however, there is no requirement here that the actual system
       database used by the cron daemon (or a similar  mechanism)  use  this  format  internally.  For  example,
       systems derived from BSD are likely to have an additional field appended that indicates the user identity
       to be used when the job is submitted.

       The  −e  option  was  adopted  from  the  SVID  as  a user convenience, although it does not exist in all
       historical implementations.

FUTURE DIRECTIONS

       None.

SEE ALSO

       at

       The Base Definitions volume of POSIX.1‐2008, Chapter 8,  Environment  Variables,  Section  12.2,  Utility
       Syntax Guidelines

COPYRIGHT

       Portions of this text are reprinted and reproduced in electronic form from IEEE Std 1003.1, 2013 Edition,
       Standard  for  Information Technology -- Portable Operating System Interface (POSIX), The Open Group Base
       Specifications Issue 7, Copyright (C) 2013 by the Institute of Electrical and Electronics Engineers,  Inc
       and  The  Open Group.  (This is POSIX.1-2008 with the 2013 Technical Corrigendum 1 applied.) In the event
       of any discrepancy between this version and the original IEEE and The Open Group Standard,  the  original
       IEEE and The Open Group Standard is the referee document. The original Standard can be obtained online at
       http://www.unix.org/online.html .

       Any  typographical  or formatting errors that appear in this page are most likely to have been introduced
       during  the  conversion  of  the  source  files  to  man  page  format.  To  report  such   errors,   see
       https://www.kernel.org/doc/man-pages/reporting_bugs.html .

IEEE/The Open Group                                   2013                                       CRONTAB(1POSIX)