rotationlogs-管道记录程序以旋转 Apache 日志

rotatelogs是一个简单程序,可与 Apache 的管道日志文件功能一起使用。它支持基于时间间隔或日志的最大大小的轮换。

Synopsis

rotatelogs [ -l ] [ -L linkname ] [ -p program ] [ -f ] [ -D ] [ -t ] [ -v ] [ -e ] [ -c ] [ -n number-of-files ] logfile rotationtime|filesize(B|K|M|G) [ offset ]

Options

如果链接名不是绝对路径,则它是相对于rotatelogs'工作目录的,该目录是服务器运行rotatelogs时的ServerRoot

使用strftime(3)文件名格式时,请确保日志文件格式具有足够的粒度,以便每次旋转日志时都产生不同的文件名。否则,轮换将覆盖同一文件,而不是启动一个新文件。例如,如果日志文件是/var/log/errorlog.%Y-%m-%d,日志旋转为 5 兆字节,但同一天两次达到 5 兆字节,则将生成相同的日志文件名,并且日志旋转将 continue 写入同一文件。

如果日志文件不是绝对路径,则它相对于rotatelogs的工作目录,当rotatelogs由服务器运行时,该目录为ServerRoot

指定时间和大小后,必须在时间之后给出大小。只要达到时间或大小限制,旋转就会发生。

Examples

CustomLog "|bin/rotatelogs /var/log/logfile 86400" common

这将创建文件/var/log/logfile.nnnn,其中 nnnn 是名义上启动日志的系统时间(此时间始终是轮换时间的倍数,因此您可以与其同步 cron 脚本)。在每个轮换时间结束时(此处为 24 小时之后),将启动一个新日志。

CustomLog "|bin/rotatelogs -l /var/log/logfile.%Y.%m.%d 86400" common

这将创建文件/var/log/logfile.yyyy.mm.dd,其中 yyyy 是年,mm 是月,dd 是月中的日。日志将在当地时间每天的午夜切换到新文件。

CustomLog "|bin/rotatelogs /var/log/logfile 5M" common

每当日志文件大小达到 5 MB 时,此配置都会对其进行轮换。

ErrorLog "|bin/rotatelogs /var/log/errorlog.%Y-%m-%d-%H_%M_%S 5M"

每当错误日志文件的大小达到 5 MB 时,此配置都会对其进行轮换,并且日志文件名的后缀将以errorlog.YYYY-mm-dd-HH_MM_SS的形式创建。

CustomLog "|bin/rotatelogs -t /var/log/logfile 86400" common

这将创建文件/ var/log/logfile,在启动时将其截断,然后每天将其截断一次。在这种情况下,预计将有单独的进程(例如 tail)将实时处理文件。

Portability

所有strftime(3)实现都应支持以下日志文件格式的字符串替换,有关库特定的扩展,请参见strftime(3)手册页。

%A 工作日全名(本地化)
%a 3-字符的工作日名称(本地化)
%B 完整的月份名称(本地化)
%b 3-字符月份名称(本地化)
%c 日期和时间(本地化)
%d 月份的 2 位数字
%H 2 位数小时(24 小时制)
%I 2 位数字小时(12 小时制)
%j 一年中的 3 位数字
%M 2-digit minute
%m 2-digit month
%p 12 小时制的上午/下午(本地化)
%S 2-digit second
%U 一年中的 2 位(星期几的第一天)
%W 一年中的 2 位(星期一的第一天)
%w 1 位数字的工作日(星期日的第一天)
%X time (localized)
%x date (localized)
%Y 4-digit year
%y 2-digit year
%Z 时区名称
%% literal `%'
首页