简介
今天在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不香吗?现在知道为什么要使用命令行了不
欢迎关注我的博客www.bboy.app
Have Fun