玩酷网

常见日志解析命令及其使用场景。制图bytebytego图中列出了前六个常用的日志

常见日志解析命令及其使用场景。制图bytebytego

图中列出了前六个常用的日志解析命令。

GREP、CUT、SED、AWK、SORT、UNIQ

让我们通过一个示例来演示。

要计算请求路径 "/api/payments" 的前 10 个 IP 地址在访问日志中出现的次数,日志格式如下:

216.67.1.91 - leon [01/Jul/2002:12:11:52 +0000] "GET /index.html HTTP/1.1" 200 431

我们可以使用 grep、cut、sort 和 uniq 命令的组合。以下是一个示例命令:

grep '/api/payments' access.log | cut -d ' ' -f 1 | sort | uniq -c | sort -rn | head -10

每个命令部分的作用如下:

grep '/api/payments' access.log:从 access.log 文件中筛选出包含 "/api/payments" 的行。

cut -d ' ' -f 1:提取每行的第一个字段(即 IP 地址)。-d ' ' 选项指定空格为字段分隔符。

sort:对 IP 地址进行排序。

uniq -c:移除重复行,并在行前加上出现的次数。

sort -rn:按数值倒序(次数最高的在前)排序行。

head -10:仅显示输出的前 10 行,即对应的前 10 个 IP 地址。