基本常用的不得不用的强大的linux日志分析命令,值得你佣有grep "Bytespider"|awk '{print $1}'|uniq -c

这几天发现一个客户的服务器资源耗费很严重,造成网站特别卡。

查看了日志发现了一个大量的存在的蜘蛛Bytespider,大半天的日志就有上百万条。有点夸张,怪不得很卡。

这个蜘蛛之前一直存在在网站上,因为没有造成什么不好的情况,就没有理它,放任它去了,既然这次出现了问题,那肯定要处理它,这个蜘蛛不遵守robots.txt规则,那就把它的ip封了吧。

写了一条语句:

以下两条shell都可以达到统计出蜘蛛IP的目的,略有点不同

#正则匹配Bytespider关键字统计出IP 并且去重 并不显示每一条的重复数
cat xcwmoon.com.access.log | grep "Bytespider"|awk '{print $1}'|uniq -d

#正则匹配Bytespider关键字统计出IP 并且去重 并显示每一条的重复数
cat xcwmoon.com.access.log | grep "Bytespider"|awk '{print $1}'|uniq -c

运行这两条命令后,我发现这个ip太多了,所以我把这些ip输入到文件中保存一下子

cat xcwmoon.com.access.log | grep "Bytespider"|awk '{print $1}'|uniq -d > ip.txt

你也可以不保存,我这里只是自己保存一下没有其他意思。

发现这个文件中的ip太多了,并且ip段都有重复的,不能自己一个一个的去查了:

接下来再用一个ip统计出自己想要的ip段,并去重:

#按照ip段去重这个命令我取的是第一段与第二段去重得到的ip就是就是取ip地址的前16位,然后去重

cat ip.txt |sort -t '.' -k 1,2 -u

最后取出了两个Ip地址段,然后把这两个ip地址段给它放到 nignx 里面

deny xxx.xxx.0.0/16;
deny xxx.xxx.0.0/16;

重启一下nginx问题就解决了。


用到的命令主要就是两个

cat xcwmoon.com.access.log | grep "Bytespider"|awk '{print $1}'|uniq -d
cat ip.txt |sort -t '.' -k 1,2 -u

可以合并成一个

cat xcwmoon.com.access.log | grep "Bytespider"|awk '{print $1}'|uniq -d |sort -t '.' -k 1,2 -u

最后那个uniq -d都可以不用要的。

Tags 虚拟主机 linux nginx

留言(0)

评论