logrotate的sharedscripts设置是否适用于所有已处理的日志,或仅适用于当前上下文中的日志?

所以我有一些我喜欢在开发者框中使用logrotate处理的apache日志。 其中一些是用户沙箱,另一些是用于登台版本等。

logrotateconfiguration如下所示:

/srv/www/logs/beta/*log /srv/www/logs/www/*log /home/developerx/logs/*.log { daily rotate 100 olddir archive sharedscripts postrotate /sbin/service httpd reload > /dev/null 2>/dev/null || true endscript } 

我想定制一些beta版本和沙箱版本的一些设置,比如旋转10而不是沙箱版本100。 我可以为此创build一个新的上下文,但是如果我为多个上下文执行“重新加载”,我担心该过程将被重新加载多次。

作为第二个问题,有什么办法可以确定logrotate处理这些条目的顺序吗? 按文件名按字母顺序排列,并在文件中首尾相连

是的,如果你写一个单独的条目,它将有一个reload命令,http服务器将被重新加载两次。

我相信,logrotate按照您的描述来应用这些规则。 它包含logrotate.d目录中的文件,并通过它们,首先到最后一个条目。 我有一个基于这个事实的logrotate监视:在一个特别棘手的文件集中的最后一个规则有一个postrotate脚本,它将date +%j到一个状态文件。

你可以使用logrotate -d -f /etc/logrotate.conf来检查上面所有的内容,其中-d代表“debug”。

Apache可以使用rotatelogs作为自定义logging器,CustomLog指令对于每个站点都可以不同,所以你可以用不同的方式处理不同的日志,并消除重载问题。