从 apache 日志中计算唯一访问次数(按 IP)

问题描述 投票:0回答:2

我正在尝试从我的 apache 日志中计算 URL 上的唯一访问次数。

这是我到目前为止所拥有的:

grep -o 'THIS_IS_MY_URL' other_vhosts_access.log | wc -l

这是有效的,但我还没有过滤唯一的 IP。你有什么想法吗?

谢谢!

awk grep
2个回答
1
投票

这些日志文件大多数时候采用以下格式:

<IP> - - <TIMESTAMP> <METHOD> <URL> ....

因此,我们不仅需要使用 ,还需要更多:

  1. 从 grep 中删除
    -o
    ,以便我们获得找到匹配 URL 的整行
  2. 然后我们可以使用
    cut -d' ' -f1
    只获取 IP 地址列表 [文档]
  3. 使用 util
    uniq
    将其过滤为仅唯一值 [文档]
  4. 使用
    wc -l
  5. 计算行数
grep 'SEARCH ME' file.log | cut -d' ' -f1 | uniq | wc -l

0
投票

我知道这现在有点旧了,但我想分享一下:

cat 'your_request.log' | awk {'print $1'} | sort | uniq -c | sort -n

无论 URL 是什么,它都会对访问 IP 进行计数并按数字排序。

© www.soinside.com 2019 - 2024. All rights reserved.