我有一个VPS帐户。
文件:
/home/httpd/..../stats/...-error_log
正在记录如此多的错误,以至于它在 24 小时内填满了 20 GB 的硬盘空间,其中包括关闭我的邮件访问等问题。
这些错误中的大多数都是重复的和次要的,我最终会修复它们,但是我怎样才能首先设置错误记录,以便它创建各种文件并在创建新文件之前删除旧文件?这就是我在过去工作过的 linux Web 服务器上工作时的记忆。我原以为这实际上是默认设置,不是在大多数 VPS 服务器上(我的帐户使用 CentOS)吗?
限制日志大小的最佳方法是使用 logrotate。查看“man logrotate”和 /etc/logrotate.conf。您可以将其配置为在日志达到特定年龄或大小时自动压缩和轮换日志;在您的情况下,尺寸是更好的选择。
有几个选项可供探索...
首先:您可以随时进入 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" (但要确保你有某种工作轮换,否则你会遇到同样的问题几天)