我一直在通过 awk 和 sort uniq 运行 access.log 文件以获取页面点击次数,但今天运行时,计数低于昨天,检查日志后,日志 3、4、5 和 7 是相同的。这是否意味着有人复制了日志,或者这是 apache 的正常行为?
答案1
这不正常。每条日志行都包含一个时间戳,因此不同日志文件唯一可能相同的合理方式就是它们完全为空。而 Web 服务器的流量很少会如此之小,以至于任何一个文件都是空的。
Apache 不会创建所有这些文件。Apache 只会写入您配置的一个名称。并且通常会有一个logrotate
cron 作业来重命名文件并向 Apache 发出信号以创建新的日志文件。
对于为什么这些文件最终会完全相同,我想到的第一种猜测是:
logrotate
使用过程中出现了一些问题- 可能涉及多次并发调用logrotate
尝试同时旋转文件。但是我无法想出一组确切的情况会导致您看到的情况。- 有人试图从这些日志文件中提取一些数据,但无意中输入了错误,导致命令写入其中一个日志文件而不是读取。犯此类错误的可能性是您不应该以对日志文件具有写访问权限的用户身份运行此类命令的原因之一。