zoukankan      html  css  js  c++  java
  • 第十周--IP监控任务脚本实现

    1、编写脚本selinux.sh,实现开启或禁用SELinux功能

    [root@centos7 ~]# cat selinux.sh 
    #!/bin/bash
    #FileName:  selinux.sh
    if [[ $1 =~ ^[Oo][Nn]$ ]];then
        sed -i 's/^SELINUX=.*/SELINUX=enforcing/' /etc/selinux/config &> /dev/null
            setenforce 1 &> /dev/null
    elif [[ $1 =~ ^[Oo][Ff][Ff]$ ]];then
        sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config &> /dev/null
        setenforce 0 &> /dev/null
    else
        echo "you are  error,please input on or off !!!"
    fi
    

    2、统计/etc/fstab文件中每个文件系统类型出现的次数

    [root@centos7 ~]# cat /etc/fstab | awk '/^UUID/{sys[$3]++}END{for(i in sys){print i,sys[i]}}'
    xfs 1
    

    3、提取出字符串Yd$C@M05MB%9&Bdh7dq+YVixp3vpw中的所有数字

    [root@centos7 ~]# echo "Yd$C@M05MB%9&Bdh7dq+YVixp3vpw" |tr -dc '[0-9]
    '
    05973
    

    4、解决DOS攻击生产案例:根据web日志或者或者网络连接数,监控当某个IP 并发连接数或者短时内PV达到100,即调用防火墙命令封掉对应的IP,监控频 率每隔5分钟。防火墙命令为:iptables -A INPUT -s IP -j REJECT

    [root@centos7 ~]# cat checkip.sh 
    #!/bin/bash
     
    #environment variable  
    source /etc/profile
    iplist=$(ss -tan | awk -F"[[:space:]]+|:" '/ESTAB/{ip[$(NF-2)]++}END{for(i in ip){print i,ip[i]}}' | awk '{if($2>1)print $1}') 
    for ip in $iplist
    do
            iptables -I INPUT -s $ip -j DROP
            echo "$ip is drop!"
    done
    

    将脚本存到计划任务中,设置定时任务计划:

    [root@centos7 ~]# crontab  -e
    */5 * * * *  /root/checkip.sh
    

      

  • 相关阅读:
    acm的STL容器之vector篇
    服务器远程管理方法及centos该装那个
    VB获取对象成员
    获取搜索引擎关键字建议
    IntelliJ IDEA乱码 问题
    排序算法思想
    ubuntu16 开机启动plank
    fail-fast出识
    html 标签过滤、转译、反转译
    (a ==1 && a== 2 && a==3) 有可能是 true 吗?
  • 原文地址:https://www.cnblogs.com/struggle-1216/p/12564095.html
Copyright © 2011-2022 走看看