向 apache vhosts 添加指令 - 清除日志

向 apache vhosts 添加指令 - 清除日志

我的每个虚拟主机上都有这个指令。它很快就占用了我所有的硬盘空间,必须手动清除。我需要在我的 ghost 中添加一些指令。

对于 httpd_vhosts.conf 中的每个虚拟主机,我都有此行。

ErrorLog /Library/WebServer/thisHostsDirectory/err_thisvhost.log
  1. 我如何告诉 apache 每 xx 天清除一次日志。
  2. 如何添加指令来记录此日志中的远程 IP
  3. 如何在此日志中排除我的本地主机和其他特定 IP。

谢谢。

答案1

以下是轮换 Apache 日志的方法:

ErrorLog "|bin/rotatelogs /var/logs/errorlog.%Y-%m-%d-%H_%M_%S 5M" 

该文档包含您需要的一切:http://httpd.apache.org/docs/2.2/programs/rotatelogs.html

答案2

处理此问题的正常方法是将 Web 服务器日志文件添加到rotatelogs。这会在达到设定的大小后和/或在设定的时间后轮换日志。

在你的系统上做一个man rotatelogs来了解它是如何工作的。

更新 刚才忘了提一下,您应该将旋转的日志文件传送到压缩程序以将日志存档。

关于要添加的内容,请查看此处的文档:http://httpd.apache.org/docs/2.2/logs.html和这里:http://httpd.apache.org/docs/2.2/mod/mod_log_config.html#formats

要回答您的 2.),您必须在指令%a中添加CustomLog。对于 3.),其他人可能会提出解决方案。我会将输出通过管道传输到 awk 或 sed,并删除以 127.0.0.1 和|或 localhost 开头的行。但可能有更好的方法。

相关内容