我需要一个替代方法来轮换我服务器上的日志,每次运行 logrotate 时 apache 都会停机 10-20 分钟,我不确定这是否正确,但对我来说似乎不正确。
Apache 上有没有 logrotate 的替代品?日志轮换时间太长,不正常吗?
我的设置是 fedora core 9,apache 2.2.14
谢谢。
答案1
我喜欢 cronolog。Apache 可以将输出通过管道传输到 cronolog,后者会根据您使用的模板将内容存储在日志中。
在我的服务器上,我在全局范围内使用这两个指令,只有一个 cronolog 副本启动并用于写入日志。这将为每个年+月创建一个新的日志文件。
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combinedvhost
CustomLog "|/usr/bin/cronolog /var/log/apache2/%Y%m.combined.allhosts.log" combinedvhost
答案2
我会研究传递给 logrotate 的选项。
根据我的经验,您应该使用copytruncate
(首先复制日志文件,然后截断)。
这也消除了 logrotate 完成后重新启动 apache 的需要。
答案3
每次运行 logrotate 时,apache 都会停机 10-20 分钟,我不确定这是否正确,但对我来说似乎不对
不 - 听起来你的系统坏了 - 我很想修复它而不是尝试别的 - 如果使用得当,logrotate 是一个非常有用的工具。
您当前的 logrotate 脚本是什么样的?
C。
答案4
如果手动重启Apache,也需要10-20分钟吗?
如果轮换日志需要那么长时间,那么似乎 Apache 被卡在了某个地方,这种情况也会手动发生,或者 logrotate 在尝试移动日志时遇到了磁盘问题。
压缩选项是否打开?如果打开,关闭时会发生什么?