减less“旋转”值后,使logrotate删除旧的日志

我试图通过减less/etc/logrotate.d/apache2中的'rotate 52'为'rotate 8'来减less为Apache保存的日志文件的数量。 每周轮换,这应该保持2个月的日志,而不是一整年。

我通过Puppet将新configuration部署到了我们的十几台服务器上,发现它的工作方式与我预期的不同。 我期望它去除Apache错误和访问日志日志超过8周,即9-52。 相反,它保留了所有的旧日志,并没有创build任何超过8周限制的日志! 现在轮到9了,但是10-52仍然存在。

search存档显示我这是已知的行为,例如Logrotate不会删除旧的日志

我如何轻松摆脱旧的日志? 我想避免在每台服务器上手动删除它们。 我还没有部署任何编排软件,所以木偶将不得不这样做。

我的/etc/logrotate.d/apache2文件显示如下:

/var/log/apache2/*.log { weekly missingok rotate 8 compress delaycompress notifempty create 644 root adm sharedscripts postrotate /etc/init.d/apache2 reload > /dev/null endscript prerotate if [ -d /etc/logrotate.d/httpd-prerotate ]; then \ run-parts /etc/logrotate.d/httpd-prerotate; \ fi; \ endscript } 

您可以添加postrotate脚本到您当前的块,以便删除n天以前的文件,其中包含以下内容:

 find /var/log/apache2 -maxdepth 1 -mtime +<n> -name "*.log.*.gz" -delete &>/dev/null 

等待下一轮,然后将其删除,让logrotate再次正常工作。