企业Shell面试题5:解决DOS攻击生产案例

写一个Shell脚本解决DOS攻击生产案例。

请根据web日志或者或者网络连接数,监控当某个IP并发连接数或者短时内PV达到100(读者根据实际情况设定),即调用防火墙命令封掉对应的IP。防火墙命令为:iptables-I INPUT -s IP地址 -j DROP。

[root@web03 scripts]# cat dos_gj.sh
#!/bin/bash #tt=awk '{a[$1$4]++ }END{for (i in a) print i,a[i]}' localhost_access_log.--.txt|sort -nk2|tail - #获取同一时间段和同一IP共同作为下标的数组,数组下标具有唯一性
#获取后按照第二列IP进行排序,取最大10条.
#第二个awk获取IP,准备下一步防火墙封IP
#tt2=$(awk '{a[$1$4]++ }END{for (i in a) print i,a[i]}' localhost_access_log.--.txt|sort -nk2|tail -|awk -F'[' '{print $1}'|sort|uniq)
#
#awk '{a[$1$4]++ }END{for (i in a) print i,a[i]}' localhost_access_log.--.txt|sort -nk2|tail -|awk -F'[' '{print $1,$2}'|awk '$3>3{print $1}'|sort|uniq -c # for i in $(awk '{a[$1$4]++ }END{for (i in a) print i,a[i]}' localhost_access_log.--.txt|sort -nk2|tail -|awk -F'[' '{print $1,$2}'|awk '$3>3{print $1}'|sort|uniq)
do echo $i echo "iptables-I INPUT -s $i -j DROP" done

最新文章

  1. C++笔记 之 基础回顾(一)
  2. oracle number型日期转date型日期
  3. berkeley db 内存池 LRU算法
  4. Thinkphp各种方法知识图谱
  5. Java并发包源码学习之AQS框架(四)AbstractQueuedSynchronizer源码分析
  6. 利用opencv进行相机标定程序
  7. MongoDB常用操作总结
  8. 微软职位内部推荐-Senior Network Engineer
  9. 常用的JS数据类型转换方法
  10. protel或Altium Designer中各种栅格(grid)的意义
  11. Jquery ajax方法详解
  12. 深入理解php底层:php生命周期
  13. vue的环境安装(二)
  14. .NET跨平台开发之Xamarin.Android介绍与生命周期【2】
  15. 网络工具之chisel + openvpn混合
  16. [转]kaldi基于GMM做分类问题
  17. Jupyter如何将numpy数据以图像形式展现?
  18. linux中shell变量$#,$@,$0,$1,$2的含义解释 (转载)
  19. SP_OACreate提权经验
  20. webpack2

热门文章

  1. Redis Cluster集群的搭建
  2. 小白系列-免费广告路由器web认证设置(2)
  3. [iOS开发] 使用Jenkins自动打包并上传至蒲公英
  4. JavaScript | 创建对象的9种方法详解
  5. Drupal如何集中控制静态变量?
  6. Android低功耗蓝牙(BLE)使用详解
  7. 【微信小程序】获取轮播图当前图片下标、滑动展示对应的位数、点击位数展示对应图片
  8. adb 修改手机代理方式
  9. python selenum ---如何定位一组元素
  10. Spring MVC 框架搭建及具体解释