zoukankan      html  css  js  c++  java
  • selinux控制脚本、AWK应用、监控访问脚本实例

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

    [root@centos7 ~]#vim selinux.sh
    #!/bin/bash
    confdir=/etc/selinux/config
    case "$1" in
    on)
      sed -ir 's/^SELINUX=.*/SELINUX=enforcing/' $confdir
      echo "Open The SELinux Success!"
      ;;
    off)
      sed -ir 's/^SELINUX=.*/SELINUX=disable/' $confdir
      echo "Close The SELinux Success;But you should reboot to make selinux enabled!"
      ;;
    *)
      echo "Usage:`basename $0` on|off"
      exit 1
      ;;
    esac

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

    [root@localhost ~]# awk '/^[^#]/{print $3}' /etc/fstab |sort |uniq -c

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

    [root@localhost ~]# echo "Yd$C@M05MB%9&Bdh7dq+YVixp3vpw"|awk 'gsub(/[^0-9]/,"")'

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

    [root@centos7 ~]#vim httpd-access.sh

    #!/bin/bash
    [ -n "$1" ] || { echo "Usage:`basename $0` file.log";exit 1; } #判断是否传有参数
    file=$1
    while true ; do
      awk '{print $1}' $1|grep -v "^$"|sort|uniq -c  > /tmp/tmp.log  #取出IP计数与IP
      exec < /tmp/tmp.log   #while读入文件
      while read line ; do
        ip=`echo $line|awk '{print $2}'`
        count=`echo $line|awk '{print $1}'`
        if [ $count -gt 100 ] && [ `iptables -vnL|grep "$ip"|wc -l` -lt 1 ];then
            iptables -A INPUT -s $IP -j REJECT
            echo "$ip is rejected" > /tmp/droplist_$(date +%F).log
        fi
      done
      sleep 300  #每分种监控一次
    done

  • 相关阅读:
    mysql主从备份案例—读写分离(异步主从)
    MySQL 汉化+完全备份操作实例
    Linux指令和shell脚本
    文件压缩和打包
    文件系统格式化和挂载
    linux常用指令和一些选项的汇总
    linux文件权限和群组
    [windows][技巧]百度网盘提示您的电脑已安装百度网盘,是否覆盖,解决方法
    [html][js]视频倍速播放功能
    [julia][学习笔记]julia的安装
  • 原文地址:https://www.cnblogs.com/ftc0926/p/13710737.html
Copyright © 2011-2022 走看看