列出 Apache access_log 中的前 404 个 URL

列出 Apache access_log 中的前 404 个 URL

我正在寻找一个命令来列出我的 apache access_log 中前 10 或 20 个 404 错误 URL。有人能帮我吗?

谢谢

答案1

假设正常的 access_log 格式应该这样做:

cat access_log | awk '{ if($9 == 404) { print $7 } }' | sort | uniq -c | sort -nr | head -10

答案2

我已经使用标准 unix 实用程序 awk、sort 等完成了此操作,效果相当不错。由于日志格式可能不同,您可能需要更改一些内容才能在您的环境中工作,但基本命令如下:

cat access_log | awk '/" 404 / {print $7}' | sort | uniq -c | sort -n | tail -n10

如果你不熟悉 awk,我们所做的是:

for each line
   if it contains the string '" 404', then
     print the 7th field (where fields are space delimited) 

如果您使用的是自定义 Apache 日志格式,则需要更改$7以匹配 GET 请求中 URL 的字段。您还可以更改 tail 命令中的行数以显示更多或更详细的结果。

相关内容