cron

CRON(8)                                                                CRON(8)



NAME
       cron - daemon to execute scheduled commands (Vixie Cron)

SYNOPSIS
       cron [-f] [-l] [-L loglevel]

DESCRIPTION
       cron  is  started automatically from /etc/init.d on entering multi-user
       runlevels.

OPTIONS
       -f      Stay in foreground mode, don't daemonize.

       -l      Enable LSB compliant names for /etc/cron.d files. This setting,
               however,   does   not   affect   the  parsing  of  files  under
               /etc/cron.hourly,    /etc/cron.daily,    /etc/cron.weekly    or
               /etc/cron.monthly.

       -L loglevel
               Tell  cron what to log about jobs (errors are logged regardless
               of this value) as the sum of the following values:

                   1      will log the start of all cron jobs

                   2      will log the end of all cron jobs

                   4      will log all failed jobs (exit status != 0)

                   8      will log the process number of all cron jobs

               The default is to log the start of all jobs (1).  Logging  will
               be  disabled  if  levels is set to zero (0). A value of fifteen
               (15) will select all options.

NOTES
       cron searches its spool  area  (/var/spool/cron/crontabs)  for  crontab
       files  (which  are named after accounts in /etc/passwd); crontabs found
       are loaded into memory.  Note that crontabs in  this  directory  should
       not be accessed directly - the crontab command should be used to access
       and update them.

       cron also reads /etc/crontab, which is in a slightly  different  format
       (see crontab(5)).  In Debian, the content of /etc/crontab is predefined
       to    run    programs    under    /etc/cron.hourly,    /etc/cron.daily,
       /etc/cron.weekly  and /etc/cron.monthly. This configuration is specific
       to Debian, see the note under DEBIAN SPECIFIC below.  in order

       Additionally, in Debian, cron reads the files in the /etc/cron.d direc-
       tory.   cron  treats the files in /etc/cron.d as in the same way as the
       /etc/crontab file (they follow the special format of  that  file,  i.e.
       they  include  the  user  field).  However,  they  are  independent  of
       /etc/crontab: they do not, for example,  inherit  environment  variable
       settings  from it. This change is specific to Debian see the note under
       DEBIAN SPECIFIC below.

       Like /etc/crontab, the files in the /etc/cron.d directory are monitored
       for  changes.  In  general,  the  system  administrator  should not use
       /etc/cron.d/, but use the standard system crontab /etc/crontab.

       /etc/crontab and the files in /etc/cron.d must be owned  by  root,  and
       must  not  be  group- or other-writable. In contrast to the spool area,
       the files  under  /etc/cron.d  or  the  files  under  /etc/cron.hourly,
       /etc/cron.daily,  /etc/cron.weekly  and  /etc/cron.monthly  may also be
       symlinks, provided that both the symlink and the file it points to  are
       owned  by  root.   The  files  under /etc/cron.d do not need to be exe-
       cutable,  while  the  files  under  /etc/cron.hourly,  /etc/cron.daily,
       /etc/cron.weekly and /etc/cron.monthly do, as they are run by run-parts
       (see run-parts(8) for more information).

       cron then wakes up every minute, examining all stored crontabs,  check-
       ing  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).  The children copies of  cron  running  these
       processes  have their name coerced to uppercase, as will be seen in the
       syslog and ps output.

       Additionally, cron checks each minute to see if its  spool  directory's
       modtime  (or  the modtime on the /etc/crontab file) has changed, and if
       it has, cron will then examine the modtime on all  crontabs  files  and
       reload those which have changed.  Thus cron need not be restarted when-
       ever a crontab file is modified.   Note  that  the  crontab(1)  command
       updates  the  modtime  of  the  spool  directory  whenever it changes a
       crontab.

       Special considerations exist when the clock is changed by less  than  3
       hours,  for  example at the beginning and end of daylight savings time.
       If the time has moved forwards, 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, those  jobs  that
       fall into the repeated time will not be re-run.

       Only  jobs that run at a particular time (not specified as @hourly, nor
       with '*' in the hour or minute specifier) are affected. Jobs which  are
       specified with wildcards are run based on the new time immediately.

       Clock  changes of more than 3 hours are considered to be corrections to
       the clock, and the new time is used immediately.

       cron logs its action to the syslog facility 'cron', and logging may  be
       controlled using the standard syslogd(8) facility.

ENVIRONMENT
       If  configured  in /etc/default/cron in Debian systems, the cron daemon
       localisation settings environment can be managed  through  the  use  of
       /etc/environment  or through the use of /etc/default/locale with values
       from the latter overriding values from the former. These files are read
       and  they will be used to setup the LANG, LC_ALL, and LC_CTYPE environ-
       ment variables. These variables are then used to  set  the  charset  of
       mails, which defaults to 'C'.

       This  does  NOT affect the environment of tasks running under cron. For
       more information on how to modify the  environment  of  tasks,  consult
       crontab(5)

       The  daemon will use, if present, the definition from /etc/timezone for
       the timezone.

       The environment can be redefined in user's crontab definitions but cron
       will only handle tasks in a single timezone.


DEBIAN SPECIFIC
       Debian  introduces some changes to cron that were not originally avail-
       able upstream. The most significant changes introduced are:


       --     Support    for    /etc/cron.{hourly,daily,weekly,monthly}    via
              /etc/crontab,

       --     Support for /etc/cron.d (drop-in dir for package crontabs),

       --     PAM support,

       --     SELinux support,

       --     auditlog support,

       --     DST and other time-related changes/fixes,

       --     SGID crontab(1) instead of SUID root,

       --     Debian-specific file locations and commands,

       --     Debian-specific configuration (/etc/default/cron),

       --     numerous other smaller features and fixes.


       Support  for  /etc/cron.hourly,  /etc/cron.daily,  /etc/cron.weekly and
       /etc/cron.monthly is provided in Debian through the default setting  of
       the /etc/crontab file (see the system-wide example in crontab(5)).  The
       default sytem-wide crontab contains four tasks: run every  hour,  every
       day,  every week and every month. Each of these tasks will execute run-
       parts providing each one of the directories as an argument. These tasks
       are  disabled  if  anacron is installed (except for the hourly task) to
       prevent conflicts between both daemons.

       As described above, the files under these directories have to  be  pass
       some  sanity checks including the following: be executable, be owned by
       root, not be writable by group or other  and,  if  symlinks,  point  to
       files  owned  by root. Additionally, the file names must conform to the
       filename requirements of run-parts: they must be entirely  made  up  of
       letters,  digits  and  can  only  contain the special signs underscores
       ('_') and hyphens ('-'). Any  file  that  does  not  conform  to  these
       requirements  will not be executed by run-parts.  For example, any file
       containing dots will be ignored.  This is done  to  prevent  cron  from
       running any of the files that are left by the Debian package management
       system when handling files in /etc/cron.d/ as configuration files (i.e.
       files ending in .dpkg-dist, .dpkg-orig, and .dpkg-new).

       This  feature  can  be  used  by  system administrators and packages to
       include tasks that will be run at defined intervals. Files  created  by
       packages  in  these  directories should be named after the package that
       supplies them.


       Support for /etc/cron.d is included in the cron  daemon  itself,  which
       handles this location as the system-wide crontab spool.  This directory
       can contain any file  defining  tasks  following  the  format  used  in
       /etc/crontab, i.e. unlike the user cron spool, these files must provide
       the username to run the task as in the task definition.

       Files in this directory have to be owned by root, do  not  need  to  be
       executable  (they  are configuration files, just like /etc/crontab) and
       must conform to the same naming convention  as  used  by  run-parts(8):
       they  must  consist  solely  of  upper- and lower-case letters, digits,
       underscores, and hyphens. This means that they cannot contain any dots.
       If the -l option is specified to cron (this option can be setup through
       /etc/default/cron, see below), then they must conform to the LSB names-
       pace specification, exactly as in the --lsbsysinit option in run-parts.

       The  intended purpose of this feature is to allow packages that require
       finer     control      of      their      scheduling      than      the
       /etc/cron.{hourly,daily,weekly,monthly}  directories  to  add a crontab
       file to /etc/cron.d. Such files should be named after the package  that
       supplies them.


       Also,   the   default   configuration   of   cron   is   controlled  by
       /etc/default/cron which is read by the init.d script that launches  the
       cron  daemon.  This file determines whether cron will read the system's
       environment variables and makes it possible to add  additional  options
       to the cron program before it is executed, either to configure its log-
       ging or to define how it will treat the files under /etc/cron.d.


SEE ALSO
       crontab(1), crontab(5), run-parts(8)

AUTHOR
       Paul Vixie  is the author of cron and original creator of
       this  manual page. This page has also been modified for Debian by Steve
       Greenland, Javier Fernandez-Sanguino and Christian Kastner.




4th Berkeley Distribution        19 April 2010                         CRON(8)