You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu下如何统计Apache access.log指定日期按分钟去重IP数量?

Ubuntu Apache access.log 按分钟统计独立IP数量方案

可用命令

直接执行以下命令即可得到你需要的输出:

grep "06/Sep/2021" access.log | awk '{split($4, t, /\[|:/); time_str = t[2]":"t[3]; unique_key = $1"|"time_str; if (!visited[unique_key]++) {ip_count[time_str]++}} END {for (tm in ip_count) print ip_count[tm], tm}' | sort -k 2

如需统计其他日期,仅需替换grep指令中引号内的日期字符串即可。

命令逻辑说明

  1. 先通过grep过滤出指定日期的日志行,缩小后续处理范围
  2. awk拆分每条日志的时间字段,提取时:分格式的时间片段
  3. 构造IP|分钟时间的唯一标识,同一IP同一分钟只会被计数一次
  4. 统计完所有日志后输出每个分钟对应的独立IP数,最后按时间排序保证输出顺序正确

原有自写命令问题

你原来的实现用while循环反复grep全量日志文件,日志体积较大时执行效率会非常低,且如果日志中存在其他日期的相同时间片段,会导致统计结果错误。

内容的提问来源于stack exchange,提问作者eSpox

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 18:57:03