如何 grep 浏览旋转日志?

如何 grep 浏览旋转日志?

我想知道有多少唯一 IP 连接到我的网站。在日志开始轮换之前,以下操作一直有效:

cut -d' ' -f1 /var/log/apache2/access.log | uniq -d | wc -l

grep 遍历所有日志是惯用的解决方案吗?

答案1

是的,grep可以获取多个文件,但cut.既然您已经这样做了并且它可以工作,那么除了在其中放置一个可以捕获您需要的所有日志文件的 glob 之外,您无需更改任何内容。就像是...

cut -d' ' -f1 /var/log/apache2/access*.log | uniq -d | wc -l

答案2

兹格列普是工具读取轮换日志。它默认安装在 Ubuntu、Mint 和 Arch 上。

#!/usr/bin/env bash
# Count unique IPs.
zgrep -E [0-9]*\.[0-9]*\.[0-9]*\.[0-9] /var/log/apache2/access.log* | cut -d':' -f2 | cut -d' ' -f1 | uniq -d | wc -l

相关内容