从access.log获取前20个IP - 按IP排序 - 添加用户代理

时间:2017-03-24 08:25:12

标签: linux apache ssh

使用此命令可以从apache access.log获取前20个Ips

cat access_log | awk '{print $1}' | sort -n | uniq -c | sort -nr | head -20

我知道,用户代理可以通过以下方式显示:

awk -F\" '{print $6}'

cut -d\" -f 6

但如何将它们结合在一起?

我希望按IP排序并将用户代理附加到IP后面。

示例:

544.45.234.5  Mozilla/5.0   (compatible;    bingbot/2.0;    +http://www.bing.com/bingbot.htm)

1 个答案:

答案 0 :(得分:1)

使用sed

cat access_log | sed -e 's/^\([[:digit:]\.]*\).*"\(.*\)"$/\1 \2/' | sort -n | uniq -c | sort -nr | head -20

您正在丢失awk '{print $1}'的信息,因此您无法在以后获得用户代理。