rotatelogs
是与Apache的管道日志文件功能结合使用的简单程序。它支持基于时间间隔或日志的最大大小的轮换。
rotatelogs
[ -l ]
[ -L linkname ]
[ -p program ]
[ -f ]
[ -D ]
[ -t ]
[ -v ]
[ -e ]
[ -c ]
[ -n number-of-files ]
logfile
rotationtime|filesize(B|K|M|G)
[ offset ]
-l
strftime(3)
基于大小旋转的格式的基础。-L
链接名导致从当前日志文件到指定链接名称的硬链接。可以使用像这样的命令来连续观察日志,记录日志的旋转情况
tail -F linkname
。
如果链接名称不是绝对路径,它是相对于rotatelogs
“工作目录,这是ServerRoot
当
rotatelogs
由服务器运行。
-p
程序rotatelogs
将在每次打开新的日志文件时执行指定的程序。新打开文件的文件名作为第一个参数传递给程序。如果在轮换之后执行,则旧日志文件将作为第二个参数传递。 rotatelogs
在继续操作之前不会等待指定的程序终止,并且不会记录终止时返回的任何错误代码。产生的程序使用与rotatelogs相同的stdin,stdout和stderr,并且还继承了环境。-f
rotatelogs
,而不是等待读取第一个日志文件条目(对于非繁忙站点,在启动服务器与处理第一个请求之间可能会有相当长的延迟,表示在此之前关联的日志文件“不存在”,这会导致某些自动日志记录工具出现问题)-D
strftime(3)
在路径中使用格式,而不仅仅是文件名。-t
-v
-e
-c
-n number-of-files
logfile
日志文件的路径和基本名称。如果日志文件
包含任何'%'字符,则将其视为的格式字符串
strftime(3)
。否则,后缀
.nnnnnnnnnn会自动添加,并且是时间(以秒为单位)(除非使用-t选项)。两种格式都从当前周期的开始计算开始时间。例如,如果指定的旋转时间为86400,则从strftime(3)
格式创建的小时,分钟和秒字段都将为零,这是指当前24小时周期的开始(午夜)。
使用strftime(3)
文件名格式时,请确保日志文件格式具有足够的粒度,以使每次旋转日志时都产生不同的文件名。否则,轮换将覆盖同一文件,而不是启动一个新文件。例如,如果日志文件是
/var/log/errorlog.%Y-%m-%d
与日志旋转在5兆字节,但在5兆是在同一天达到两次,会产生相同的日志文件名称和日志轮换会继续写入同一文件。
如果日志文件不是绝对路径,它是相对于rotatelogs
“工作目录,这是ServerRoot
当
rotatelogs
由服务器运行。
rotationtime
filesize(B|K|M|G)
B
(字节),K
(千字节),(兆M
字节)或G
(千兆字节)之一。
指定时间和大小后,必须在时间之后给出大小。只要达到时间或大小限制,旋转就会发生。
offset
-300
为此参数指定一个值。在大多数情况下,-l
应使用而不是指定偏移量。
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)将实时处理文件。
所有strftime(3)
实现均应支持以下日志文件格式的字符串替换,有关strftime(3)
特定于库的扩展,请参见手册页。
%A | 工作日全名(本地化) |
%a | 3个字符的工作日名称(本地化) |
%B | 完整的月份名称(本地化) |
%b | 3个字符的月份名称(本地化) |
%c | 日期和时间(本地化) |
%d | 每月2位数的日期 |
%H | 2位小时(24小时制) |
%I | 2位小时(12小时制) |
%j | 一年中的三位数 |
%M | 2位数分钟 |
%m | 2位数的月份 |
%p | 12小时制的上午/下午(本地化) |
%S | 2位数秒 |
%U | 一年中的两位数(星期几的第一天) |
%W | 每年2位数的星期(星期一的第一天) |
%w | 1位数字的工作日(星期日的第一天) |
%X | 时间(本地化) |
%x | 日期(本地化) |
%Y | 4位数的年份 |
%y | 2位数的年份 |
%Z | 时区名称 |
%% | 文字“%” |