795 lines
28 KiB
Groff
795 lines
28 KiB
Groff
'\" t
|
|
.TH LOGROTATE 8 "3.22.0" "Linux" "System Administrator's Manual"
|
|
.\" Per groff_man(7), the TQ macro should be copied from an-ext.tmac when
|
|
.\" not running under groff. That's not quite right; not all groff
|
|
.\" installations include this macro. So bring it in with another name
|
|
.\" unconditionally.
|
|
.\" Continuation line for .TP header.
|
|
.de tq
|
|
. br
|
|
. ns
|
|
. TP \\$1\" no doublequotes around argument!
|
|
..
|
|
|
|
.SH NAME
|
|
|
|
logrotate \(hy rotates, compresses, and mails system logs
|
|
|
|
.SH SYNOPSIS
|
|
|
|
\fBlogrotate\fR
|
|
\fR[\fB\-\-force\fR]
|
|
\fR[\fB\-\-debug\fR]
|
|
\fR[\fB\-\-state\fR \fIfile\fR]
|
|
\fR[\fB\-\-skip-state-lock\fR]
|
|
\fR[\fB\-\-wait-for-state-lock\fR]
|
|
\fR[\fB\-\-verbose\fR]
|
|
\fR[\fB\-\-log\fR \fIfile\fR]
|
|
\fR[\fB\-\-mail\fR \fIcommand\fR]
|
|
\fIconfig_file\fR
|
|
\fR[\fIconfig_file2 ...\fR]
|
|
|
|
.SH DESCRIPTION
|
|
|
|
\fBlogrotate\fR is designed to ease administration of systems that generate
|
|
large numbers of log files. It allows automatic rotation, compression,
|
|
removal, and mailing of log files. Each log file may be handled daily,
|
|
weekly, monthly, or when it grows too large.
|
|
.P
|
|
Normally, \fBlogrotate\fR is run as a daily cron job. It will not modify
|
|
a log more than once in one day unless the criterion for that log is
|
|
based on the log's size and \fBlogrotate\fR is being run more than once
|
|
each day, or unless the \fB\-f\fR or \fB\-\-force\fR option is used.
|
|
.P
|
|
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 \fBlogrotate\fR config files are listed is important.
|
|
Normally, a single config file which includes any other config files
|
|
which are needed should be used. See below for more information on how
|
|
to use the \fBinclude\fR directive to accomplish this. If a directory
|
|
is given on the command line, every file in that directory is used as
|
|
a config file.
|
|
.P
|
|
If no command line arguments are given, \fBlogrotate\fR will print
|
|
version and copyright information, along with a short usage summary. If
|
|
any errors occur while rotating logs, \fBlogrotate\fR will exit with
|
|
non-zero status, although the state file will be updated.
|
|
|
|
.SH OPTIONS
|
|
|
|
.TP
|
|
\fB\-f\fR, \fB\-\-force\fR
|
|
Tells \fBlogrotate\fR to force the rotation, even if it doesn't think
|
|
this is necessary. Sometimes this is useful after adding new entries to
|
|
a \fBlogrotate\fR config file, or if old log files have been removed
|
|
by hand, as the new files will be created, and logging will continue
|
|
correctly.
|
|
|
|
.TP
|
|
\fB\-d\fR, \fB\-\-debug\fR
|
|
Turn on debug mode, which means that no changes are made to the logs and the
|
|
\fBlogrotate\fR state file is not updated. Only debug messages are printed.
|
|
|
|
.TP
|
|
\fB\-s\fR, \fB\-\-state\fR \fIstatefile\fR
|
|
Tells \fBlogrotate\fR to use an alternate state file. This is useful
|
|
if \fBlogrotate\fR is being run as a different user for various sets of
|
|
log files. To prevent parallel execution \fBlogrotate\fR by default
|
|
acquires a lock on the state file, if it cannot be acquired \fBlogrotate\fR
|
|
will exit with value 3.
|
|
The default state file is \fI/var/lib/logrotate.status\fR.
|
|
If \fI/dev/null\fR is given as the state file, then \fBlogrotate\fR will
|
|
not try to lock or write the state file.
|
|
|
|
.TP
|
|
\fB\-\-skip-state-lock\fR
|
|
Do not lock the state file, for example if locking is unsupported or prohibited.
|
|
|
|
.TP
|
|
\fB\-\-wait-for-state-lock\fR
|
|
Wait until lock on the state file is released by another logrotate process.
|
|
This option may cause logrotate to wait indefinitely. Use with caution.
|
|
|
|
.TP
|
|
\fB\-v\fR, \fB\-\-verbose\fR
|
|
Turns on verbose mode, for example to display messages during rotation.
|
|
|
|
.TP
|
|
\fB\-l\fR, \fB\-\-log\fR \fIfile\fR
|
|
Tells \fBlogrotate\fR to log verbose output into the log_file. The verbose
|
|
output logged to that file is the same as when running \fBlogrotate\fR with
|
|
\fB-v\fR switch. The log file is overwritten on every \fBlogrotate\fR
|
|
execution.
|
|
|
|
.TP
|
|
\fB\-m\fR, \fB\-\-mail\fR \fIcommand\fR
|
|
Tells \fBlogrotate\fR which command to use when mailing logs. This
|
|
command should accept the following arguments:
|
|
.IP
|
|
1) the subject of the message given with '-s subject'
|
|
.br
|
|
2) the recipient.
|
|
.IP
|
|
The command must then read a message on standard input
|
|
and mail it to the recipient. The default mail command is
|
|
\fI/usr/bin/mail\fR.
|
|
|
|
.TP
|
|
\fB\-\-usage\fR
|
|
Prints a short usage message.
|
|
|
|
.TP
|
|
\fB\-?\fR, \fB\-\-help\fR
|
|
Prints help message.
|
|
|
|
.TP
|
|
\fB\-\-version\fR
|
|
Display version information.
|
|
|
|
|
|
.SH CONFIGURATION FILE
|
|
|
|
\fBlogrotate\fR reads everything about the log files it should be handling
|
|
from the series of configuration files specified on the command line. Each
|
|
configuration file can set global options (local definitions override
|
|
global ones, and later definitions override earlier ones) and specify
|
|
logfiles to rotate. Global options do not affect preceding include
|
|
directives. A simple configuration file looks like this:
|
|
|
|
.nf
|
|
.ta +8n
|
|
# sample logrotate configuration file
|
|
compress
|
|
|
|
/var/log/messages {
|
|
rotate 5
|
|
weekly
|
|
postrotate
|
|
/usr/bin/killall \-HUP syslogd
|
|
endscript
|
|
}
|
|
|
|
"/var/log/httpd/access.log" /var/log/httpd/error.log {
|
|
rotate 5
|
|
mail recipient@example.org
|
|
size 100k
|
|
sharedscripts
|
|
postrotate
|
|
/usr/bin/killall \-HUP httpd
|
|
endscript
|
|
}
|
|
|
|
/var/log/news/* {
|
|
monthly
|
|
rotate 2
|
|
olddir /var/log/news/old
|
|
missingok
|
|
sharedscripts
|
|
postrotate
|
|
kill \-HUP $(cat /var/run/inn.pid)
|
|
endscript
|
|
nocompress
|
|
}
|
|
|
|
~/log/*.log {}
|
|
|
|
.fi
|
|
|
|
.PP
|
|
The first few lines set global options; in the example, 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 \fB#\fR.
|
|
|
|
Values are separated from directives by whitespace and/or an optional =.
|
|
Numbers must be specified in a format understood by \fBstrtoul\fR(3).
|
|
|
|
The next section of the config file defines how to handle the log file
|
|
\fI/var/log/messages\fR. 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
|
|
\fI/usr/bin/killall \-HUP syslogd\fR will be executed.
|
|
|
|
The next section defines the parameters for both
|
|
\fI/var/log/httpd/access.log\fR and \fI/var/log/httpd/error.log\fR.
|
|
Each is rotated whenever it grows over 100\ kilobytes in size, and the old logs
|
|
files are mailed (uncompressed) to recipient@\:example.org after going through 5
|
|
rotations, rather than being removed. The \fBsharedscripts\fR means that
|
|
the \fBpostrotate\fR script will only be run once for this section, not once
|
|
for each log which is rotated.
|
|
Note that log file names may be enclosed in
|
|
quotes (and that quotes are required if the name contains spaces).
|
|
Normal shell quoting rules apply, with \fB'\fR, \fB"\fR, and \fB\e\fR
|
|
characters supported.
|
|
|
|
The next section defines the parameters for all of the files in
|
|
\fI/var/log/news\fR. Each file is rotated on a monthly basis.
|
|
|
|
The last section uses tilde expansion to rotate log files in the home
|
|
directory of the current user. This is only available, if your glob
|
|
library supports tilde expansion. GNU glob does support this.
|
|
|
|
Please use wildcards with caution. If you specify *, \fBlogrotate\fR will
|
|
rotate all files, including previously rotated ones. A way around this
|
|
is to use the \fBolddir\fR directive or a more exact wildcard (such as *.log).
|
|
|
|
Please note, by default when using \fBsystemd\fR(1), the option
|
|
\fIProtectSystem=full\fR is set in the \fIlogrotate.service\fR file.
|
|
This prevents \fBlogrotate\fR from modifying logs in \fI/etc\fR
|
|
and \fI/usr\fR.
|
|
|
|
Here is more information on the directives which may be included in
|
|
a \fBlogrotate\fR configuration file:
|
|
|
|
.SH CONFIGURATION FILE DIRECTIVES
|
|
These directives may be included in a \fBlogrotate\fR configuration file:
|
|
|
|
.SS Rotation
|
|
|
|
.TP
|
|
\fBrotate \fIcount\fR
|
|
Log files are rotated \fIcount\fR times before being removed or mailed to the
|
|
address specified in a \fBmail\fR directive. If \fIcount\fR is 0, old versions
|
|
are removed rather than rotated. If \fIcount\fR is \-1, old logs are not
|
|
removed at all, except they are affected by \fBmaxage\fR (use with caution, may
|
|
waste performance and disk space). Default is 0.
|
|
|
|
.TP
|
|
\fBolddir \fIdirectory\fR
|
|
Logs are moved into \fIdirectory\fR for rotation. The \fIdirectory\fR must be
|
|
on the same physical device as the log file being rotated, unless \fBcopy\fR,
|
|
\fBcopytruncate\fR or \fBrenamecopy\fR option is used. The \fIdirectory\fR
|
|
is assumed to be relative to the directory holding the log file
|
|
unless an absolute path name is specified. When this option is used all
|
|
old versions of the log end up in \fIdirectory\fR. This option may be
|
|
overridden by the \fBnoolddir\fR option.
|
|
|
|
.TP
|
|
\fBnoolddir\fR
|
|
Logs are rotated in the directory they normally reside in (this
|
|
overrides the \fBolddir\fR option).
|
|
|
|
.TP
|
|
\fBsu \fIuser\fR \fIgroup\fR
|
|
Rotate log files set under this user and group instead of using default
|
|
user/group (usually root). \fIuser\fR specifies the user used for
|
|
rotation and \fIgroup\fR specifies the group used for rotation (see the
|
|
section \fBUSER AND GROUP\fR for details). If the
|
|
user/group you specify here does not have sufficient privilege to make
|
|
files with the ownership you've specified in a \fBcreate\fR directive,
|
|
it will cause an error. If \fBlogrotate\fR runs with root privileges, it is
|
|
recommended to use the \fBsu\fR directive to rotate files in directories
|
|
that are directly or indirectly in control of non-privileged users.
|
|
|
|
.SS Frequency
|
|
|
|
.TP
|
|
\fBhourly\fR
|
|
Log files are rotated every hour. Note that usually \fBlogrotate\fR is
|
|
configured to be run by cron daily (or by \fIlogrotate.timer\fR when using
|
|
\fBsystemd\fR(1)). You have to change this configuration and run
|
|
\fBlogrotate\fR hourly to be able to really rotate logs hourly.
|
|
|
|
.TP
|
|
\fBdaily\fR
|
|
Log files are rotated every day.
|
|
|
|
.TP
|
|
\fBweekly\fR [\fIweekday\fR]
|
|
Log files are rotated once each \fIweekday\fR, or if the date is advanced by at
|
|
least 7 days since the last rotation (while ignoring the exact time). The
|
|
\fIweekday\fR interpretation 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 \fIweekday\fR argument is omitted.
|
|
|
|
.TP
|
|
\fBmonthly\fR
|
|
Log files are rotated the first time \fBlogrotate\fR is run in a month
|
|
(this is normally on the first day of the month).
|
|
|
|
.TP
|
|
\fByearly\fR
|
|
Log files are rotated if the current year is not the same as the last rotation.
|
|
|
|
.TP
|
|
\fBsize \fIsize\fR
|
|
Log files are rotated only if they grow bigger than \fIsize\fR bytes. If
|
|
\fIsize\fR is followed by \fIk\fR, the size is assumed to be in kilobytes.
|
|
If \fIM\fR is used, the size is in megabytes, and if \fIG\fR is used, the
|
|
size is in gigabytes. So \fIsize 100\fR, \fIsize 100k\fR, \fIsize 100M\fR and
|
|
\fIsize 100G\fR are all valid. This option is mutually exclusive with the time
|
|
interval options, and it causes log files to be rotated without regard for the
|
|
last rotation time, if specified after the time criteria (the last specified
|
|
option takes the precedence).
|
|
|
|
.SS File selection
|
|
|
|
.TP
|
|
\fBmissingok\fR
|
|
If the log file is missing, go on to the next one without issuing an error
|
|
message. See also \fBnomissingok\fR.
|
|
|
|
.TP
|
|
\fBnomissingok\fR
|
|
If a log file does not exist, issue an error. This is the default.
|
|
|
|
.TP
|
|
\fBignoreduplicates\fR
|
|
Ignore any following matches of a log file.
|
|
|
|
.TP
|
|
\fBifempty\fR
|
|
Rotate the log file even if it is empty, overriding the \fBnotifempty\fR
|
|
option (\fBifempty\fR is the default).
|
|
|
|
.TP
|
|
\fBnotifempty\fR
|
|
Do not rotate the log if it is empty (this overrides the \fBifempty\fR option).
|
|
|
|
.TP
|
|
\fBminage\fR \fIcount\fR
|
|
Do not rotate logs which are less than <count> days old.
|
|
|
|
.TP
|
|
\fBmaxage\fR \fIcount\fR
|
|
Remove rotated logs older than <count> days. The age is only checked
|
|
if the logfile is to be rotated. \fBrotate \-1\fR does not hinder removal.
|
|
The files are mailed to the configured address if \fBmaillast\fR and
|
|
\fBmail\fR are configured.
|
|
|
|
.TP
|
|
\fBminsize\fR \fIsize\fR
|
|
Log files are rotated when they grow bigger than \fIsize\fR bytes, but not
|
|
before the additionally specified time interval (\fBdaily\fR, \fBweekly\fR,
|
|
\fBmonthly\fR, or \fByearly\fR). The related \fBsize\fR 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,
|
|
if specified after the time criteria (the last specified option takes the
|
|
precedence). When \fBminsize\fR is used, both the size and timestamp of a
|
|
log file are considered.
|
|
|
|
.TP
|
|
\fBmaxsize\fR \fIsize\fR
|
|
Log files are rotated when they grow bigger than \fIsize\fR bytes even
|
|
before the additionally specified time interval (\fBdaily\fR, \fBweekly\fR,
|
|
\fBmonthly\fR, or \fByearly\fR). The related \fBsize\fR 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,
|
|
if specified after the time criteria (the last specified option takes the
|
|
precedence). When \fBmaxsize\fR is used, both the size and timestamp of a
|
|
log file are considered.
|
|
|
|
.TP
|
|
\fBtabooext\fR [+] \fIlist\fR
|
|
The current taboo extension list is changed (see the \fBinclude\fR 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
|
|
.IR ,v ,
|
|
.IR .bak ,
|
|
.IR .cfsaved ,
|
|
.IR .disabled ,
|
|
.IR .dpkg\-bak ,
|
|
.IR .dpkg\-del ,
|
|
.IR .dpkg\-dist ,
|
|
.IR .dpkg\-new ,
|
|
.IR .dpkg\-old ,
|
|
.IR .dpkg\-tmp ,
|
|
.IR .new ,
|
|
.IR .old ,
|
|
.IR .orig ,
|
|
.IR .rhn\-cfg\-tmp\-* ,
|
|
.IR .rpmnew ,
|
|
.IR .rpmorig ,
|
|
.IR .rpmsave ,
|
|
.IR .swp ,
|
|
.IR .ucf\-dist ,
|
|
.IR .ucf\-new ,
|
|
.IR .ucf\-old ,
|
|
.I ~
|
|
|
|
.TP
|
|
\fBtaboopat\fR [+] \fIlist\fR
|
|
The current taboo glob pattern list is changed (see the \fBinclude\fR directive
|
|
for information on the taboo extensions and patterns). If a + precedes the list
|
|
of patterns, the current taboo pattern list is augmented, otherwise it
|
|
is replaced. At startup, the taboo pattern list is empty.
|
|
|
|
.SS Files and Folders
|
|
|
|
.TP
|
|
\fBcreate \fImode\fR \fIowner\fR \fIgroup\fR, \fBcreate \fIowner\fR \fIgroup\fR
|
|
Immediately after rotation (before the \fBpostrotate\fR script is run)
|
|
the log file is created (with the same name as the log file just rotated).
|
|
\fImode\fR specifies the mode for the log file in octal (the same
|
|
as \fBchmod\fR(2)), \fIowner\fR specifies the user who will own the
|
|
log file, and \fIgroup\fR specifies the group the log file will belong
|
|
to (see the section \fBUSER AND GROUP\fR for details).
|
|
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
|
|
\fBnocreate\fR option.
|
|
|
|
.TP
|
|
\fBnocreate\fR
|
|
New log files are not created (this overrides the \fBcreate\fR option).
|
|
|
|
.TP
|
|
\fBcreateolddir \fImode\fR \fR[\fIowner\fR \fR[\fIgroup\fR]\fR], \fBcreateolddir \fR[\fIowner\fR \fR[\fIgroup\fR]\fR]
|
|
If the directory specified by \fBolddir\fR directive does not exist, it is
|
|
created. \fImode\fR specifies the mode for the \fBolddir\fR directory
|
|
in octal (the same as \fBchmod\fR(2)), \fIowner\fR specifies the user
|
|
who will own the \fBolddir\fR directory, and \fIgroup\fR specifies the group
|
|
the \fBolddir\fR directory will belong to (see the section \fBUSER AND GROUP\fR
|
|
for details). If \fImode\fR is not specified, \fB0755\fR is assumed.
|
|
This option can be disabled using the \fBnocreateolddir\fR option.
|
|
|
|
.TP
|
|
\fBnocreateolddir\fR
|
|
\fBolddir\fR directory is not created by \fBlogrotate\fR when it does not exist.
|
|
|
|
.TP
|
|
\fBcopy\fR
|
|
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 \fBcreate\fR option will have no effect,
|
|
as the old log file stays in place. The \fBcopy\fR option allows storing
|
|
rotated log files on the different devices using \fBolddir\fR directive.
|
|
|
|
.TP
|
|
\fBnocopy\fR
|
|
Do not copy the original log file and leave it in place.
|
|
(this overrides the \fBcopy\fR option).
|
|
|
|
.TP
|
|
\fBcopytruncate\fR
|
|
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 logging data might be lost.
|
|
When this option is used, the \fBcreate\fR option will have no effect,
|
|
as the old log file stays in place. The \fBcopytruncate\fR option allows
|
|
storing rotated log files on the different devices using \fBolddir\fR
|
|
directive. The \fBcopytruncate\fR option implies \fBnorenamecopy\fR.
|
|
|
|
.TP
|
|
\fBnocopytruncate\fR
|
|
Do not truncate the original log file in place after creating a copy
|
|
(this overrides the \fBcopytruncate\fR option).
|
|
|
|
.TP
|
|
\fBrenamecopy\fR
|
|
Log file is renamed to temporary filename in the same directory by adding
|
|
".tmp" extension to it. After that, \fBpostrotate\fR script is run
|
|
and log file is copied from temporary filename to final filename. In the end,
|
|
temporary filename is removed. The \fBrenamecopy\fR option allows storing
|
|
rotated log files on the different devices using \fBolddir\fR directive.
|
|
The \fBrenamecopy\fR option implies \fBnocopytruncate\fR.
|
|
|
|
.TP
|
|
\fBnorenamecopy\fR
|
|
Do not rename and copy the original log file
|
|
(this overrides the \fBrenamecopy\fR option).
|
|
|
|
.TP
|
|
\fBshred\fR
|
|
Delete log files using \fBshred\fR \-u instead of unlink(). This should
|
|
ensure that logs are not readable after their scheduled deletion; this is
|
|
off by default. See also \fBnoshred\fR.
|
|
|
|
.TP
|
|
\fBnoshred\fR
|
|
Do not use \fBshred\fR when deleting old log files. See also \fBshred\fR.
|
|
|
|
.TP
|
|
\fBshredcycles\fR \fIcount\fR
|
|
Asks GNU \fBshred\fR(1) to overwrite log files \fBcount\fR times before
|
|
deletion. Without this option, \fBshred\fR's default will be used.
|
|
|
|
.TP
|
|
\fBallowhardlink\fR
|
|
Rotate files with multiple hard links; this is off by default. The target file
|
|
might get emptied, e.g. with \fBshred\fR or \fBcopytruncate\fR. Use with
|
|
caution, especially when the log files are rotated as root.
|
|
|
|
.TP
|
|
\fBnoallowhardlink\fR
|
|
Do not rotate files with multiple hard links. See also \fBallowhardlink\fR.
|
|
|
|
.SS Compression
|
|
|
|
.TP
|
|
\fBcompress\fR
|
|
Old versions of log files are compressed with \fBgzip\fR(1) by default.
|
|
See also \fBnocompress\fR.
|
|
|
|
.TP
|
|
\fBnocompress\fR
|
|
Old versions of log files are not compressed. See also \fBcompress\fR.
|
|
|
|
.TP
|
|
\fBcompresscmd\fR
|
|
Specifies which command to use to compress log files. The default is
|
|
\fBgzip\fR(1). See also \fBcompress\fR.
|
|
|
|
.TP
|
|
\fBuncompresscmd\fR
|
|
Specifies which command to use to uncompress log files. The default is
|
|
\fBgunzip\fR(1).
|
|
|
|
.TP
|
|
\fBcompressext\fR
|
|
Specifies which extension to use on compressed logfiles, if compression
|
|
is enabled. The default follows that of the configured compression
|
|
command.
|
|
|
|
.TP
|
|
\fBcompressoptions\fR
|
|
Command line options may be passed to the compression program, if one is
|
|
in use. The default, for \fBgzip\fR(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
|
|
\fBcompressoptions\fR to match.
|
|
|
|
.TP
|
|
\fBdelaycompress\fR
|
|
Postpone compression of the previous log file to the next rotation cycle.
|
|
This only has effect when used in combination with \fBcompress\fR.
|
|
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.
|
|
|
|
.TP
|
|
\fBnodelaycompress\fR
|
|
Do not postpone compression of the previous log file to the next rotation cycle
|
|
(this overrides the \fBdelaycompress\fR option).
|
|
|
|
.SS Filenames
|
|
|
|
.TP
|
|
\fBextension \fIext\fR
|
|
Log files with \fIext\fR extension can keep it after the rotation.
|
|
If compression is used, the compression extension (normally \fI.gz\fR)
|
|
appears after \fIext\fR. 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.
|
|
|
|
.TP
|
|
\fBaddextension \fIext\fR
|
|
Log files are given the final extension \fIext\fR after rotation. If
|
|
the original file already ends with \fIext\fR, the extension is not
|
|
duplicated, but merely moved to the end, that is both \fBfilename\fR and
|
|
\fBfilename\fIext\fR would get rotated to filename.1\fIext\fR. If
|
|
compression is used, the compression extension (normally \fB.gz\fR)
|
|
appears after \fIext\fR.
|
|
|
|
.TP
|
|
\fBstart \fIcount\fR
|
|
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\(en8. Files will still be rotated the
|
|
number of times specified with the \fBrotate\fR directive.
|
|
|
|
.TP
|
|
\fBdateext\fR
|
|
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 \fBdateformat\fR and \fBdateyesterday\fR options.
|
|
|
|
.TP
|
|
\fBnodateext\fR
|
|
Do not archive old versions of log files with date extension
|
|
(this overrides the \fBdateext\fR option).
|
|
|
|
.TP
|
|
\fBdateformat\fR \fIformat_string\fR
|
|
Specify the extension for \fBdateext\fR using the notation similar to
|
|
\fBstrftime\fR(3) function. Only %Y %m %d %H %M %S %V %s and %z 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
|
|
(that is first the year, then the month then the day. For example 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 \fBrotate\fR option, \fBlogrotate\fR sorts all
|
|
rotated filenames to find out which logfiles are older and should be removed.
|
|
|
|
.TP
|
|
\fBdateyesterday\fR
|
|
Use yesterday's instead of today's date to create the \fBdateext\fR
|
|
extension, so that the rotated log file has a date in its name that is
|
|
the same as the timestamps within it.
|
|
|
|
.TP
|
|
\fBdatehourago\fR
|
|
Use hour ago instead of current date to create the \fBdateext\fR extension,
|
|
so that the rotated log file has a hour in its name that is the same as the
|
|
timestamps within it. Useful with rotate \fBhourly\fR.
|
|
|
|
.SS Mail
|
|
|
|
.TP
|
|
\fBmail \fIaddress\fR
|
|
When a log is rotated out of existence, it is mailed to \fIaddress\fR. If
|
|
no mail should be generated by a particular log, the \fBnomail\fR directive
|
|
may be used.
|
|
|
|
.TP
|
|
\fBnomail\fR
|
|
Do not mail old log files to any address.
|
|
|
|
.TP
|
|
\fBmailfirst\fR
|
|
When using the \fBmail\fR command, mail the just-rotated file,
|
|
instead of the about-to-expire file.
|
|
|
|
.TP
|
|
\fBmaillast\fR
|
|
When using the \fBmail\fR command, mail the about-to-expire file,
|
|
instead of the just-rotated file (this is the default).
|
|
|
|
.SS Additional config files
|
|
|
|
.TP
|
|
\fBinclude \fIfile_or_directory\fR
|
|
Reads the file given as an argument as if it was included inline
|
|
where the \fBinclude\fR 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 or patterns, as specified by the \fBtabooext\fR
|
|
or \fBtaboopat\fR directives, respectively. The given path may
|
|
start with \fB~/\fR to make it relative to the home directory of
|
|
the executing user. For security reasons configuration files must
|
|
not be group-writable nor world-writable.
|
|
|
|
.SS Scripts
|
|
|
|
.TP
|
|
\fBsharedscripts\fR
|
|
Normally, \fBprerotate\fR and \fBpostrotate\fR 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
|
|
\fI/var/log/news/*\fR example). If \fBsharedscripts\fR 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 (or any log fails to
|
|
rotate), the remaining actions will not be executed for any logs. This option
|
|
overrides the \fBnosharedscripts\fR option.
|
|
|
|
.TP
|
|
\fBnosharedscripts\fR
|
|
Run \fBprerotate\fR and \fBpostrotate\fR scripts for every log file which
|
|
is rotated (this is the default, and overrides the \fBsharedscripts\fR
|
|
option). The absolute path to the log file is passed as first argument
|
|
to the script. The absolute path to the final rotated log file is passed as
|
|
the second argument to the \fBpostrotate\fR script. If the scripts exit with
|
|
error, the remaining actions will not be executed for the affected log only.
|
|
|
|
.tq
|
|
\fBfirstaction\fR
|
|
.tq
|
|
\ \ \ \ \fIscript\fR
|
|
.tq
|
|
\fBendscript\fR
|
|
The \fIscript\fR is executed once
|
|
before all log files that match the wildcarded pattern are rotated, before
|
|
the prerotate script is run and only if at least one log will actually be
|
|
rotated. These directives may only appear inside a log file definition.
|
|
The whole pattern is passed to the script as its first argument. If the script
|
|
exits with an error, no further processing is done. See also \fBlastaction\fR
|
|
and the \fBSCRIPTS\fR section.
|
|
|
|
.tq
|
|
\fBlastaction\fR
|
|
.tq
|
|
\ \ \ \ \fIscript\fR
|
|
.tq
|
|
\fBendscript\fR
|
|
The \fIscript\fR is executed once
|
|
after all log files that match the wildcarded pattern are rotated, after the
|
|
postrotate script is run and only if at least one log is rotated. These
|
|
directives may only appear inside a log file definition. The whole pattern is
|
|
passed to the script as its first argument. If the script exits
|
|
with an error, just an error message is shown (as this is the last
|
|
action). See also \fBfirstaction\fR and
|
|
the \fBSCRIPTS\fR section.
|
|
|
|
.tq
|
|
\fBprerotate\fR
|
|
.tq
|
|
\ \ \ \ \fIscript\fR
|
|
.tq
|
|
\fBendscript\fR
|
|
The \fIscript\fR is executed before the log file and its old logs are
|
|
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 the first argument to the script.
|
|
If \fBsharedscripts\fR is specified, the whole pattern is passed to the script.
|
|
See also \fBpostrotate\fR and the \fBSCRIPTS\fR section.
|
|
See \fBsharedscripts\fR and \fBnosharedscripts\fR for error handling.
|
|
|
|
.tq
|
|
\fBpostrotate\fR
|
|
.tq
|
|
\ \ \ \ \fIscript\fR
|
|
.tq
|
|
\fBendscript\fR
|
|
The \fIscript\fR is executed after the log file is rotated and before the log
|
|
file is being compressed. These directives may only appear inside a log file
|
|
definition. Normally, the absolute path to the log file is
|
|
passed as the first argument to the script and the absolute path to the final
|
|
rotated log file is passed as the second argument to the script. If
|
|
\fBsharedscripts\fR is specified, the whole pattern is passed as the first
|
|
argument to the script, and the second argument is omitted.
|
|
See also \fBprerotate\fR and the \fBSCRIPTS\fR section.
|
|
See \fBsharedscripts\fR and \fBnosharedscripts\fR
|
|
for error handling.
|
|
|
|
.tq
|
|
\fBpreremove\fR
|
|
.tq
|
|
\ \ \ \ \fIscript\fR
|
|
.tq
|
|
\fBendscript\fR
|
|
The \fIscript\fR is executed
|
|
once just
|
|
before removal of a log file. \fBlogrotate\fR will pass
|
|
the name of file which is soon to be removed as the first argument to the
|
|
script. See also \fBfirstaction\fR and
|
|
the \fBSCRIPTS\fR section.
|
|
|
|
.SH SCRIPTS
|
|
|
|
The lines between the starting keyword (e.g. \fBprerotate\fR) and
|
|
\fBendscript\fR (both of which must appear on lines by themselves) are
|
|
executed (using \fB/bin/sh\fR).
|
|
The script inherits some traits from the \fBlogrotate\fR process, including
|
|
stderr, stdout, the current directory, the environment, and the umask.
|
|
Scripts are run as the invoking user and group, irrespective of any \fBsu\fR
|
|
directive. If the \fB\-\-log\fR flag was specified, file descriptor 3 is the
|
|
log file. The current working directory is unspecified.
|
|
|
|
.SH USER AND GROUP
|
|
|
|
User and group identifiers are resolved first by trying the textual
|
|
representation and, in case it fails, afterwards by the numeric value.
|
|
|
|
.SH FILES
|
|
|
|
.TS
|
|
tab(:);
|
|
l l l.
|
|
\fI/var/lib/logrotate.status\fR:Default state file.
|
|
\fI/etc/logrotate.conf\fR:Configuration options.
|
|
.TE
|
|
|
|
|
|
.SH "SEE ALSO"
|
|
|
|
.BR chmod (2),
|
|
.BR gunzip (1),
|
|
.BR gzip (1),
|
|
.BR mail (1),
|
|
.BR shred (1),
|
|
.BR strftime (3),
|
|
.BR strtoul (3),
|
|
<https://github.com/logrotate/logrotate>
|
|
|
|
.SH AUTHORS
|
|
|
|
.nf
|
|
Erik Troan, Preston Brown, Jan Kaluza.
|
|
|
|
<https://github.com/logrotate/logrotate>
|
|
|
|
.fi
|