存档说明:本文保留了 2019 年写作时的工具与环境背景。
awk 很适合在命令行快速筛查 Apache 请求日志。具体写法取决于 LogFormat;出于合规考虑,这里不公开实际日志格式。
这次我想找出耗时超过三秒的请求。日志中的耗时以微秒记录,我还需要提取 URL,并把结果限定在某个时间段。本例中的 2019:04:1 匹配当天 UTC 04:10 至 04:19 的请求。
这是我的命令:
cat /httpd/logs/access.log |grep "2019:04:1"| awk '{if ($(NF-2) > 3000000) print $4"-----"$7"-----"$(NF-2);}'
$(NF-2) 表示每行倒数第三个字段,在这里存放以微秒计的请求耗时。命令会输出时间戳(第 4 个字段, $4)、URL($7)和耗时($(NF-2)).


云 / 系统