LOGROTATE(8)                                         LOGROTATE(8)

NAME
       logrotate - rotates, compresses, and mails system logs

SYNOPSIS
       logrotate   [-dv]   [-f|--force]  [-s|--state  file]  con-
       fig_file+

DESCRIPTION
       logrotate is designed to ease  administration  of  systems
       that generate large numbers of log files.  It allows auto-
       matic rotation, compression, removal, and mailing  of  log
       files.   Each  log  file  may  be  handled  daily, weekly,
       monthly, or when it grows too large.

       Normally, logrotate is run as a daily cron job.   It  will
       not modify a log multiple times in one day unless the cri-
       terium for that log is based on the log's size and  logro-
       tate  is  being run multiple times each day, or unless the
       -f or -force option is used.

       Any number of config files may be  given  on  the  command
       line. Later config files may override the options given in
       earlier files, so the order in which the logrotate  config
       files are listed in is important.  Normally, a single con-
       fig file which includes any other config files  which  are
       needed  should be used.  See below for more information on
       how to use the include directive to accomplish this.  If a
       directory is given on the command line, every file in that
       directory is used as a config file.

OPTIONS
       -d     Turns on debug mode and implies -v.  In debug mode,
              no  changes  will  be  made  to  the logs or to the
              logrotate state file.

       -f, --force
              Tells logrotate to force the rotation, even  if  it
              doesn't think this is necessary.  Sometimes this is
              useful after adding new entries to logrotate, or if
              old log files have been removed by hand, as the new
              files will be created, and  logging  will  continue
              correctly.

       -s, --state <statefile>
              Tells  logrotate  to  use  an alternate state file.
              This is useful if logrotate is being run as a  dif-
              ferent  user  for  various  sets of log files.  The
              default state file is /var/lib/logrotate.status.

       --usage
              Prints the a short usage,  version,  and  copyright
              message.

CONFIGURATION FILE
       logrotate  reads  everything about the log files it should
       be handling from the series of configuration files  speci-
       fied on the command line.  Each configuration file can set
       global options (local definitions  override  global  ones,
       and later definitions override earlier ones) and specify a
       logfile to rotate. A simple configuration file looks  like
       this:

       # sample logrotate configuration file
       errors sysadmin@my.org
       compress

       /var/log/messages {
           rotate 5
           weekly
           postrotate
                                     /sbin/killall -HUP syslogd
           endscript
       }

       "/var/log/httpd/access.log" {
           rotate 5
           mail www@my.org
           errors www@my.org
           size=100k
           postrotate
                                     /sbin/killall -HUP httpd
           endscript
       }

       /var/log/news/* {
           monthly
           rotate 2
           missingok
           errors newsadmin@my.org
           postrotate
                                     kill -HUP `cat /var/run/inn.pid`
           endscript
           nocompress
       }

       The  first  few  lines set global options; any errors that
       occur during log file  processing  are  mailed  to  sysad-
       min@my.org and logs are compressed after they are rotated.
       Note that comments may appear anywhere in the config  file
       as  long as the first non-whitespace character on the line
       is a #.

       The next section of the config files defined how to handle
       the  log  file  /var/log/messages. The log will go through
       five weekly rotations before being removed. After the  log
       file  has  been rotated (but before the old version of the
       log has been compressed), the command  /sbin/killall  -HUP
       syslogd will be executed.

       The    next    section    defines   the   parameters   for
       /var/log/httpd/access.log.   It  is  rotated  whenever  is
       grows over 100k is size, and the old logs files are mailed
       (uncompressed) to www@my.org after going through  5  rota-
       tions,  rather  then  being  removed. Likewise, any errors
       that occur while processing the log file are  also  mailed
       to  www@my.org  (overriding  the global errors directive).
       Note that the double quotes around  the  filename  at  the
       beginning  of this section allows logrotate to rotate logs
       with spaces in the name.

       The last section definest the parameters for  all  of  the
       files  in /var/log/news. Each file is rotated on a monthly
       basis, and the errors are mailed to newsadmin@my.org. This
       is  considered  a  single rotation directive and if errors
       occur for more then one file they are mailed in  a  single
       message. In this case, the log files are not compressed.

       Here  is  more  information on the directives which may be
       included in a logrotate configuration file:

       compress
              Old versions of log files are compressed with gzip.
              See also nocompress.

       copytruncate
              Truncate  the original log file in place after cre-
              ating a copy, instead of moving the  old  log  file
              and  optionally  creating a new one, It can be used
              when some program can not be told to close its log-
              file and thus might continue writing (appending) to
              the previous log file forever.  Note that there  is
              a  very  small  time slice between copying the file
              and truncating it, so some logging  data  might  be
              lost.   When this option is used, the create option
              will have no effect, as the old log file  stays  in
              place.

       create mode owner group
              Immediately  after  rotation (before the postrotate
              script is run) the log file is  created  (with  the
              same  name  as  the  log  file just rotated).  mode
              specifies the mode for the log file in  octal  (the
              same  as  chmod(2)),  owner specifies the user name
              who will own the log file, and group specifies  the
              group  the  log file will belong to. Any of the log
              file attributes may be omitted, in which case those
              attributes  for the new file will use the same val-
              ues as  the  original  log  file  for  the  omitted
              attributes.  This  option can be disabled using the
              nocreate option.

       daily  Log files are rotated every day.

       delaycompress
              Postpone compression of the previous  log  file  to
              the next rotation cycle.  This has only effect when
              used in combination with compress.  It can be  used
              when some program can not be told to close its log-
              file and thus might continue writing to the  previ-
              ous log file for some time.

       errors address
              Any  errors  that  occur during log file processing
              are mailed to the given address.

       ifempty
              Rotate the log file even if it is empty,  overiding
              the notifempty option (ifempty is the default).

       include file_or_directory
              Reads  the  file  given as an argument as if it was
              included  inline  where   the   include   directive
              appears. If a directory is given, most of the files
              in that directory are read before processing of the
              including  file continues. The only files which are
              ignored are files which are not regular files (such
              as  directories  and  named  pipes) and files whose
              names end with one  of  the  taboo  extensions,  as
              specified  by  the tabooext directive.  The include
              directive may not appear inside of a log file defi-
              nition.

       mail address
              When  a  log  is  rotated  out-of-existence,  it is
              mailed to address. If no mail should  be  generated
              by  a  particular  log, the nomail directive may be
              used.

       missingok
              If the log file is missing, go on to the  next  one
              without   issuing   an   error  message.  See  also
              nomissingok.

       monthly
              Log files are rotated the first time  logrotate  is
              run  in  a month (this is normally on the first day
              of the month).

       nocompress
              Old versions of log files are not  compressed  with
              gzip. See also compress.

       nocopytruncate
              Do  not  truncate  the  original  log file in place
              after creating a copy (this overrides the copytrun-
              cate option).

       nocreate
              New  log  files are not created (this overrides the
              create option).

       nodelaycompress
              Do not postpone compression  of  the  previous  log
              file to the next rotation cycle (this overrides the
              delaycompress option).

       nomail Don't mail old log files to any address.

       nomissingok
              If a log file does not exist, issue an error.  This
              is the default.

       noolddir
              Logs are rotated in the same directory the log nor-
              mally  resides  in  (this  overrides   the   olddir
              option).

       notifempty
              Do  not  rotate  the log if it is empty (this over-
              rides the ifempty option).

       olddir directory
              Logs are moved into  directory  for  rotation.  The
              directory  must  be  on the same physical device as
              the log file being rotated.  When  this  option  is
              used  all  old versions of the log end up in direc-
              tory.  This option may be overriden by the noolddir
              option.

       postrotate/endscript
              The lines between postrotate and endscript (both of
              which must appear on lines by themselves) are  exe-
              cuted  after  the log file is rotated. These direc-
              tives may only appear inside of a log file  defini-
              tion.  See prerotate as well.

       prerotate/endscript
              The  lines between prerotate and endscript (both of
              which must appear on lines by themselves) are  exe-
              cuted  before the log file is rotated. These direc-
              tives may only appear inside of a log file  defini-
              tion.  See postrotate as well.

       rotate count
              Log  files  are  rotated <count> times before being
              removed or mailed to the  address  specified  in  a
              mail  directive.  If  count  is 0, old versions are
              removed rather then rotated.

       size size
              Log files are rotated when they  grow  bigger  then
              size  bytes.  If size is followed by M, the size if
              assumed to be in megabytes.  If the k is used,  the
              size  is  in kilobytes. So size 100, size 100k, and
              size 100M are all valid.

       tabooext [+] list
              The current taboo extension list  is  changed  (see
              the  include directive for information on the taboo
              extensions). If a + precedes  the  list  of  exten-
              sions,  the  current  taboo  extension list is aug-
              mented, otherwise it is replaced. At  startup,  the
              taboo  extension  list contains .rpmorig, .rpmsave,
              ,v and ~.

       weekly Log files are rotated if  the  current  weekday  is
              less  then  the  weekday of the last rotation or if
              more then a week has passed since  the  last  rota-
              tion. This is normally the same as rotating logs on
              the first day of the week, but it works  better  if
              logrotate is not run every night.

FILES
       /var/lib/logrotate.status  Default state file.

SEE ALSO
       gzip(1)

AUTHOR
       Erik Troan <ewt@redhat.com>

                         Tue Jun 23 1998                        1