![如何设置 /home/httpd/.../stats/ 错误文件的增长限制](https://linux22.com/image/484070/%E5%A6%82%E4%BD%95%E8%AE%BE%E7%BD%AE%20%2Fhome%2Fhttpd%2F...%2Fstats%2F%20%E9%94%99%E8%AF%AF%E6%96%87%E4%BB%B6%E7%9A%84%E5%A2%9E%E9%95%BF%E9%99%90%E5%88%B6.png)
我有一个 VPS 帐户。
文件:
/home/httpd/..../stats/...-error_log
记录了太多错误,以至于在 24 小时内填满 20 GB 硬盘空间除其他问题外,它还导致我无法访问我的邮件,等等。
这些错误大多是重复的和次要的,我最终会修复它们,但我如何才能首先设置错误记录这样它就会创建各种文件,并在创建新文件之前删除旧文件?这是我以前在 Linux Web 服务器上工作时记得的。我以为这实际上是默认设置,不是大多数 VPS 服务器上都是这样吗(我的帐户使用 CentOS)?
答案1
限制日志大小的最佳方法是使用 logrotate。查看“man logrotate”和 /etc/logrotate.conf。您可以将其配置为在日志达到特定年龄或大小时自动压缩和轮换日志;大小是您的最好选择。
答案2
有几个选项可供探索...
首先:您可以随时进入 apache 配置并禁用该特定错误日志,直到您准备好解决问题为止。在 /etc/httpd 目录中找到 ErrorLog 行并将其注释掉。
第二:您可以每小时运行一次“logrotate”。我假设已经有一个每日日志轮换,而少于 24 小时的事情就是导致您遇到麻烦的原因。在 CentOS 上,轮换该日志的配置应该在 /etc/logrotate.d/httpd 中——您可以将其设置为基于大小而不是基于时间的日志文件。除非您为每小时版本传递自定义配置,否则它将使其他文件的日志轮换不同步。只需将 /etc/cron.daily/logrotate 移动或复制到 /etc/cron.hourly/logrotate 即可轻松解决问题。
第三:查看“rotatelogs”。它随 apache 一起提供,并有自己的手册页。缺点是它不执行删除操作,只是根据条件(例如大小、时间等)拆分日志。因此,您仍然需要一个
第四:日志压缩。GZip 应该对大多数日志文件实现 10:1 的压缩率。类似这样的内容:ErrorLog "|gzcat > /home/httpd/..../stats/...-error_log.gz"(但请确保您有某种有效的轮换,否则几天后您还会遇到同样的问题)