Logrotate:如何在postrotate中访问输出文件

我每天都旋转Nginx日志(用dateext )。 轮换之后,我想分析刚刚通过的那一天的文件,编译一个带有Nginx服务器返回错误数量的邮件。

如何访问logrotate postrotate / endscript部分中的输出文件?

我不知道你可以使用任何变数,如果这是你在找什么。 不过,在旋转日志之后,您应该根据您为轮转设置的configuration( /var/log/somefile.1或类似名称)准确知道文件已被旋转到的名称。

如果你描述了你正在试图解决的实际问题,也许这会更容易回答?

如果您不使用“sharedscripts”指令,那么您的postrotate脚本将以$ 1的forms接收触发日志轮转的文件。 如果您尝试使用带有多个logrotate节的通用脚本,这可能会有所帮助。 也就是说,给定这样的事情:

 /var/log/sample1.log /var/log/sample[23].log { ..config... } 

如果任何匹配的文件需要轮换,您的脚本将被调用$ 1设置为“/var/log/sample1.log”,“/var/log/sample2.log”或“/var/log/sample3.log “ 作为适当的。 然后,您可以追加“.1”来查找刚旋转的文件。

如果你使用“sharedscripts”选项,那么你的脚本将被调用$ 1设置为“/var/log/sample1.log /var/log/sample[23].log”(这将帮助你识别一个特定的节,但不是确切的文件)。

希望这给你一个开始的地方。 请注意,这只适用于logrotate> v3.7.5。