我需要更改 apache 的日志保留,目前它似乎是按照 logrotate.conf 中的默认值运行的,即每周一次。它每周创建“access_log.1”、“access_log.2”等等。问题是它每周删除最后一个日志文件“access_log.5”,我需要日志无限地继续,而不是每周删除最后一个日志。它似乎是按照 logrotate.conf 中的默认值运行的 - 我不想更改该文件中保存的默认值,所以我假设有一种方法可以使用 /etc/logrotate.d/httpd 文件更改保留?
内容如下:
/var/log/httpd/*log {
missingok
notifempty
sharedscripts
postrotate
/sbin/service httpd reload > /dev/null 2>/dev/null || true
endscript
}
我可以添加/更改什么来阻止每周删除最后的日志?
答案1
您需要添加rotate {value}
选项来告诉 logrotate 要保留多少份。以下将保留 52 份。
/var/log/httpd/*log {
missingok
rotate 52
notifempty
sharedscripts
postrotate
/sbin/service httpd reload > /dev/null 2>/dev/null || true
endscript
}
答案2
这个问题的答案出奇地难找。我最终发现这篇晦涩难懂的 2003 年论坛帖子。解决方案似乎是您只需禁用默认情况下可能在的cronjob
for即可。这将禁用机器上所有位置的所有日志轮换,这正是我想要的。如果您只想针对特定应用程序执行此操作,我认为您可以创建一个空的配置文件。如果您只是删除此配置文件,我认为它将默认恢复为全局配置文件并仍然轮换。logrotate
/etc/cron.daily/logrotate
/etc/logrotate.d/apache2
/etc/logrotate.conf