logrotate主配置文件详解

一、logrotate主配置文件/etc/logrotate.conf

# see "man logrotate" for details
# rotate log files weekly
#所有的日志文件,每周滚动一次
weekly
 
# keep 4 weeks worth of backlogs
#日志发生滚动后,指定备份日志文件保存多少个副本(权限不变)
rotate 4
 
# create new (empty) log files after rotating old ones
#是否创建一个空的新的日志文件
create
 
# use date as a suffix of the rotated file
#指定滚动文件的后缀是当前日期
dateext
 
# uncomment this if you want your log files compressed
#是否对滚动后的日志进行压缩
#compress
 
# RPM packages drop log rotation information into this directory
#加载子配置文件
include /etc/logrotate.d
 
#####上面是全局配置,下面是局部配置#####

# no packages own wtmp and btmp -- we'll rotate them here
#指定对特定的日志文件的滚动规则
/var/log/wtmp {
 
    monthly                 #一月滚动一次
 
    create 0664 root utmp   #指定滚动后创建的新文件的权限为0644,数组为root,属组为utmp
 
     minsize 1M             #指定文件的值小于1M不滚动   
 
    rotate 1                #指定保留几个备份副本
 
}
 
/var/log/btmp {
 
    missingok   #如果日志文件不存在发送错误消息
    monthly
    create 0600 root utmp
    rotate 1
 
}
 
# system-specific logs may be also be configured here.

二、主配置文件参数详解

PS:配置文件中的更多参数可用man logrotate查看


       compress
              Old versions of log files are compressed with gzip(1) by default. See also nocompress.


       compresscmd
              Specifies which command to use to compress log files.  The default is gzip(1).  See also compress.


       uncompresscmd
              Specifies which command to use to uncompress log files.  The default is gunzip(1).


       compressext
              Specifies  which  extension  to  use on compressed logfiles, if compression is enabled.  The default
              follows that of the configured compression command.


       compressoptions
              Command line options may be passed to the compression program, if one is in use.  The  default,  for
              gzip(1),  is "-6" (biased towards high compression at the expense of speed).  If you use a different
              compression command, you may need to change the compressoptions to match.



       copy   Make a copy of the log file, but don't change the original at all.  This option  can  be  used,  for
              instance,  to  make a snapshot of the current log file, or when some other utility needs to truncate
              or parse the file.  When this option is used, the create option will have no effect, as the old  log
              file stays in place.


       copytruncate
              Truncate  the  original  log file to zero size in place after creating a copy, instead of moving the
              old log file and optionally creating a new one.  It can be used when some program cannot be told  to
              close  its  logfile  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  log‐
              ging  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, create 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 values as the original log file for the  omitted
              attributes. This option can be disabled using the nocreate option.


       createolddir mode owner group
              If  the  directory  specified  by olddir directive does not exist, it is created. mode specifies the
              mode for the olddir directory in octal (the same as chmod(2)), owner specifies  the  user  name  who
              will  own  the  olddir directory, and group specifies the group the olddir directory will belong to.
              This option can be disabled using the nocreateolddir option.



       daily  Log files are rotated every day.


       dateext
              Archive old versions of log files adding a date extension like YYYYMMDD instead of simply  adding  a
              number. The extension may be configured using the dateformat and dateyesterday options.


       dateformat format_string
              Specify  the extension for dateext using the notation similar to strftime(3) function. Only %Y %m %d
              %H and %s specifiers are allowed.  The default value is -%Y%m%d except hourly, which uses  -%Y%m%d%H
              as  default  value.   Note that also the character separating log name from the extension is part of
              the dateformat string. The system clock must be set past Sep 9th 2001  for  %s  to  work  correctly.
              Note  that the datestamps generated by this format must be lexically sortable (i.e., first the year,
              then the month then the day. e.g., 2001/12/01 is ok, but 01/12/2001 is not, since  01/11/2002  would
              sort  lower  while  it is later).  This is because when using the rotate option, logrotate sorts all
              rotated filenames to find out which logfiles are older and should be removed.


       dateyesterday
              Use yesterday's instead of today's date to create the dateext extension, so  that  the  rotated  log
              file has a date in its name that is the same as the timestamps within it.


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


       extension ext
              Log  files  with  ext extension can keep it after the rotation.  If compression  is  used,  the com‐
              pression extension (normally .gz) appears after ext. For example you have a logfile named  mylog.foo
              and want to rotate it to mylog.1.foo.gz instead of mylog.foo.1.gz.


       hourly Log files are rotated every hour. Note that usually logrotate is configured to be run by cron daily.
              You have to change this configuration and run logrotate hourly to be  able  to  really  rotate  logs
              hourly.


       ifempty
              Rotate the log file even if it is empty, overriding 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 in  alphabetic  order
              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.


       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.


       mailfirst
              When using the mail command, mail the just-rotated file, instead of the about-to-expire file.


       maillast
              When using the mail command, mail the about-to-expire file, instead of the just-rotated  file  (this
              is the default).


       maxage count
              Remove  rotated  logs  older  than  <count>  days.  The  age is only checked if the logfile is to be
              rotated. The files are mailed to the configured address if maillast and mail are configured.


       maxsize size
              Log files are rotated when they grow bigger than size bytes even before the  additionally  specified
              time  interval  (daily, weekly, monthly, or yearly).  The related size option is similar except that
              it is mutually exclusive with the time interval options, and it causes log files to be rotated with‐
              out  regard  for the last rotation time.  When maxsize is used, both the size and timestamp of a log
              file are considered.


       minsize  size
              Log files are rotated when they grow bigger than size bytes, but not before the additionally  speci‐
              fied  time  interval (daily, weekly, monthly, or yearly).  The related size option is similar except
              that it is mutually exclusive with the time interval options, and it causes log files to be  rotated
              without  regard  for the last rotation time.  When minsize is used, both the size and timestamp of a
              log file are considered.


       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. See also compress.


       nocopy Do not copy the original log file and leave it in place.  (this overrides the copy option).


       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).


       nocreateolddir
              olddir directory is not created by logrotate when it does not exist.


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


       nodateext
              Do not archive  old versions of log files with date extension (this overrides the dateext option).


       nomail Do not 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 directory they normally reside in (this overrides the olddir option).


       nosharedscripts
              Run prerotate and postrotate scripts for every log file which is rotated (this is the  default,  and
              overrides  the  sharedscripts option). The absolute path to the log file is passed as first argument
              to the script. If the scripts exit with error, the remaining actions will not be  executed  for  the
              affected log only.


       noshred
              Do not use shred when deleting old log files. See also shred.


       notifempty
              Do not rotate the log if it is empty (this overrides 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, unless copy, copytruncate or renamecopy option is  used.  The  directory  is
              assumed  to be relative to the directory holding the log file unless an absolute path name is speci‐
              fied. When this option is used all old versions of the log end up in directory.  This option may  be
              overridden by the noolddir option.


       postrotate/endscript
              The  lines  between  postrotate and endscript (both of which must appear on lines by themselves) are
              executed (using /bin/sh) after the log file is rotated. These directives may only  appear  inside  a
              log  file definition. Normally, the absolute path to the log file is passed as first argument to the
              script. If sharedscripts is specified, whole pattern is passed to the script.  See  also  prerotate.
              See sharedscripts and nosharedscripts for error handling.


       prerotate/endscript
              The  lines  between  prerotate  and endscript (both of which must appear on lines by themselves) are
              executed (using /bin/sh) before the log file is rotated  and  only  if  the  log  will  actually  be
              rotated.  These directives may only appear inside a log file definition. Normally, the absolute path
              to the log file is passed as first argument to the script.  If  sharedscripts  is  specified,  whole
              pattern  is  passed  to the script.  See also postrotate.  See sharedscripts and nosharedscripts for
              error handling.


       firstaction/endscript
              The lines between firstaction and endscript (both of which must appear on lines by  themselves)  are
              executed  (using  /bin/sh)  once before all log files that match the wildcarded pattern are rotated,
              before prerotate script is run and only if at least one log will actually be rotated.  These  direc‐
              tives  may  only appear inside a log file definition. Whole pattern is passed to the script as first
              argument. If the script exits with error, no further processing is done. See also lastaction.


       lastaction/endscript
              The lines between lastaction and endscript (both of which must appear on lines  by  themselves)  are
              executed  (using  /bin/sh)  once  after all log files that match the wildcarded pattern are rotated,
              after postrotate script is run and only if at least one log is rotated. These  directives  may  only
              appear inside a log file definition. Whole pattern is passed to the script as first argument. If the
              script exits with error, just an error message is shown (as this  is  the  last  action).  See  also
              firstaction.


       preremove/endscript
              The  lines  between  preremove  and endscript (both of which must appear on lines by themselves) are
              executed (using /bin/sh) once just before removal of a log file.  The logrotate will pass  the  name
              of file which is soon to be removed. See also firstaction.


       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 than rotated.


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


       sharedscripts
              Normally, prerotate and postrotate scripts are run for each log which is rotated  and  the  absolute
              path  to  the  log file is passed as first argument to the script. That means a single script may be
              run multiple times for log file entries which match multiple  files  (such  as  the  /var/log/news/*
              example).  If  sharedscripts  is  specified,  the scripts are only run once, no matter how many logs
              match the wildcarded pattern, and whole pattern is passed to them.  However, if none of the logs  in
              the  pattern  require  rotating, the scripts will not be run at all. If the scripts exit with error,
              the remaining actions will not be executed for any logs. This option overrides  the  nosharedscripts
              option and implies create option.


       shred  Delete  log files using shred -u instead of unlink().  This should ensure that logs are not readable
              after their scheduled deletion; this is off by default.  See also noshred.


       shredcycles count
              Asks GNU shred(1) to overwrite log files count times before deletion.  Without this option,  shred's
              default will be used.


       start count
              This  is the number to use as the base for rotation. For example, if you specify 0, the logs will be
              created with a .0 extension as they are rotated from the original log files.  If you specify 9,  log
              files  will  be  created  with  a .9, skipping 0-8.  Files will still be rotated the number of times
              specified with the rotate directive.


       su user group
              Rotate log files set under this user and group instead of using default user/group  (usually  root).
              user  specifies  the user name used for rotation and group specifies the group used for rotation. If
              the user/group you specify here does not have sufficient privilege to make files with the  ownership
              you've specified in a create instruction, it will cause an error.


       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 extensions, the current taboo extension list is  augmented,
              otherwise it is replaced. At startup, the taboo extension list contains .rpmsave, .rpmorig, ~, .dis‐
              abled, .dpkg-old, .dpkg-dist, .dpkg-new, .cfsaved, .ucf-old,  .ucf-dist,  .ucf-new,  .rpmnew,  .swp,
              .cfsaved, .rhn-cfg-tmp-*


       weekly [weekday]
              Log  files  are  rotated  once each weekday, or if the date is advanced by at least 7 days since the
              last rotation (while ignoring the exact time).  The weekday intepretation  is  following:   0  means
              Sunday, 1 means Monday, ..., 6 means Saturday; the special value 7 means each 7 days, irrespectively
              of weekday.  Defaults to 0 if the weekday argument is omitted.


       yearly Log files are rotated if the current year is not the same as the last rotation.



 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐