我正在寻找一个命令,列出我的apache access_log中的10个或20个顶级404错误URL。 谁能帮我这个?
谢谢
假设正常的access_log格式应该这样做:
cat access_log | awk '{ if($9 == 404) { print $7 } }' | sort | uniq -c | sort -r | head -10
我已经使用标准的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命令更改行数,以显示更多结果或rewer结果。