使用shell脚本分析nginx中的ip

简介

今天在kibana中看到了一些奇怪的ip,所以就打算使用shell去分析一下

操作

总的命令如下

cat error.log |grep client |awk -F 'client' '{print $2}'|awk '{print $2}'|grep -v body|awk -F ',' '{print $1}'|sort |uniq -c|sort -k1,1nr|head -n 40|awk '{print $2}'|xargs -n 1 -I {} curl ip.bboy.app?ip={}

我们一行一行去分析

cat error.log |grep client |awk -F 'client' '{print $2}'|awk '{print $2}'|grep -v body|awk -F ',' '{print $1}'

这里是去过滤日志中的一些内容把nginx日志中client字段后面的ip过滤出来,之后我们使用sort命令把ip排序,过滤出每个ip在文件中出现的次数

sort |uniq -c

接着我们按照第一个字段,也就是按照ip出现的次数大小排序

sort -k1,1nr

排序完成之后选取前40行

head -n 40

接着过滤掉行号

awk '{print $2}'

最后把结果作为参数传入查询ip物理地址的接口查询ip的归属地

xargs -n 1 -I {} curl ip.bboy.app?ip={}

ip.bboy.app这个地址是我自己写的一个查询ip的接口,用的是GEOIP

有的人说直接用百度查询ip不香吗?现在知道为什么要使用命令行了不

欢迎关注Bboysoul的博客www.bboy.app

Have Fun

欢迎关注我的其它发布渠道