禁用 apache 的日志轮换或移动文件位置

禁用 apache 的日志轮换或移动文件位置

我需要更改 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 年论坛帖子。解决方案似乎是您只需禁用默认情况下可能在的cronjobfor即可。这将禁用机器上所有位置的所有日志轮换,这正是我想要的。如果您只想针对特定应用程序执行此操作,我认为您可以创建一个空的配置文件。如果您只是删除此配置文件,我认为它将默认恢复为全局配置文件并仍然轮换。logrotate/etc/cron.daily/logrotate/etc/logrotate.d/apache2/etc/logrotate.conf

相关内容