不知不觉建了好多网站, 也维护多个VPS服务器好多年了, 经常会碰到服务器被多种不良爬虫攻击, 不管是否恶意, 每次并发访问大的时候, 服务器的CPU使用率就飙升.
这时候我一般都会分析APACHE日志来找出在同一时间并发访问的IP. 然后找到IP后就很简单了, 通过CLOUDFLARE的防火墙添加一条IP规则永久禁止该IP的访问. CLOUDFLARE是个很不错的保护, 因为你服务器的IP地址永远不会被泄露, 而CLOUDFLARE会在你的服务器和访问者之间过滤掉恶意的访问.
通过在LINUX下BASH的几个命令, cat, awk, sort, uniq, head 可以用管道把这几个命令用起来, 分析APACHE的日志脚本, 找出访问最多的几个IP地址.
cat access.log | awk '{print $1}' | sort | uniq -c | sort -nr | awk '{printf "%-8s ==> %s\n", $2, $1}' | head -10
显示如下:
200.167.184.130 ==> 54487
189.11.199.82 ==> 30796
169.57.142.70 ==> 22209
187.7.215.35 ==> 21290
201.49.164.75 ==> 11104
200.167.184.168 ==> 10838
93.158.239.25 ==> 2747
2804:7f3:6980:4e90:4d67:871c:a75b:f5e4 ==> 1588
156.67.242.53 ==> 1407
198.71.230.54 ==> 1078
第一部分的命令 cat access.log | awk ‘{print $1}’ 是把日志中的第一列, 也就是访问者的IP给找出来, 然后后面七七八八的命令就是分组, 排序, 然后打印出来. 非常的好用.
BASH小技巧
- Bash 编程: 计算两个正整数的最大公约数/GCD
- BASH: 如何使用 cURL 命令获取 HTTP 响应代码?
- 通过BASH脚本显示树莓PI的温度和频率
- 如何通过BASH命令把频繁访问服务器的IP找出来?
- BASH编程: 计算一个文本文件中每个单词的频率
- LINUX BASH下的 大括号数组
- BASH 脚本 防止 iptablex 攻击
- BASH 脚本匹配 IP 地址的 简单例子 (正则表达式)
- 如何在 Linux 下 列出最耗资源的进程 (BASH 脚本)
- BASH: 通过dd命令测试硬盘读写速度/性能
- 判断服务器的硬盘类型: 是否是固态硬盘/NVMe
- LINUX 命令 cowsay, cowthink 牛说/牛想
- BASH: 怎样通过curl命令查看服务器响应时间??
- BASH: LINUX 下竖中指
上一篇: Steem 终于升到 72级
下一篇: 参加 2018 Hacktoberfest 活动, 收到一件衣服和几个小玩意
扫描二维码,分享本文到微信朋友圈

爬虫多, 说明你的站点受欢迎, 我以前有个新闻站点, 每天爬虫来几万次, 收录也是惊人, 流量更是吓人
收录惊人放个广告不就发了? 为啥不做了呢?