Logrotate不会删除旧的日志

由于某些原因,旧的日志文件不会被删除。 示例与Apache

什么conf文件说:

$ cat /etc/logrotate.d/apache2 /var/log/apache2/*.log { weekly missingok rotate 2 compress delaycompress notifempty create 640 root adm sharedscripts postrotate /etc/init.d/apache2 reload > /dev/null endscript } 

日志文件夹的(裁剪)内容:

 # ls /var/log/apache2/ access.log error.log.26.gz other_vhosts_access.log.20.gz access-ssl.log.14.gz access.log.1 error.log.27.gz other_vhosts_access.log.21.gz access-ssl.log.15.gz access.log.2.gz error.log.28.gz other_vhosts_access.log.22.gz access-ssl.log.16.gz access.log.3.gz error.log.2.gz other_vhosts_access.log.23.gz access-ssl.log.17.gz [...] 

其实有很多:

 # ls /var/log/apache2/ | wc -l 85 

带有–verbose的logrotate命令给了我这个:

 # /usr/sbin/logrotate --verbose /etc/logrotate.conf [...] reading config file apache2 reading config info for /var/log/apache2/*.log [...] rotating pattern: /var/log/apache2/*.log weekly (2 rotations) empty log files are not rotated, old logs are removed considering log /var/log/apache2/access.log log does not need rotating considering log /var/log/apache2/error.log log does not need rotating considering log /var/log/apache2/other_vhosts_access.log log does not need rotating considering log /var/log/apache2/pbpdhg-ssl.log log does not need rotating not running postrotate script, since no logs were rotated [...] 

这里有什么问题? 日志旋转但不能删除? 我错过了什么?

你的configuration说:旋转2

这意味着日志文件在被移除之前被旋转了2次,所以logrotate只关心2个文件。

我的猜测是configuration在某个时候被改变了,因为以前有更多的日志文件被保存了,也许这就像是旋转28.这些旧的文件,你必须手动删除。

具有后缀.gz的日志不被考虑,因为您指定了:/var/log/apache2/*.log

所以2 .log和所有.gz文件仍然存在。

要改变这个放在那里

/ var / log / apache2 / ** log *或者一些正则expression式。