awk&&bash脚本练习

1、编写脚本selinux.sh,实现开启或禁用SELinux功能
1>编辑脚本
vim config_selinux.sh
#!/bin/bash
if [ $1 == "disable" ];then
    sed -ir 's#SELINUX=enforcing#SELINUX=disabled#' /etc/selinux/config &&
    echo "disable  selinux sucessful"
elif
   [ $1 == "enable" ];then
   sed -ir 's#SELINUX=disabled#SELINUX=enforcing#' /etc/selinux/config  &&
   echo "enable selinux sucessful"
else
   echo "Usage:$0 disable | enable"
   exit 1
fi
2>给与执行权限
chmod +x config_selinux.sh

3> 执行
./config_selinux enable
./config_selinux disable


2、统计/etc/fstab文件中每个文件系统类型出现的次数
awk '/^UUID|^\/dev/{f_type[$3]++}END{for(i in f_type){print i,f_type[i]}}' /etc/fstab


3、提取出字符串Yd$C@M05MB%9&Bdh7dq+YVixp3vpw中的所有数字
]# echo "Yd$C@M05MB%9&Bdh7dq+YVixp3vpw" | awk -F "[^0-9]+" '{i=1;while(i<=NF){if($i ~ /[0-9]/)printf "%s",$i;i++}}'
05973

4、解决DOS攻击生产案例:根据web日志或者或者网络连接数,监控当某个IP 并发连接数或者短时内PV达到100,即调用防火墙命令封掉对应的IP,监控频 率每隔5分钟。防火墙命令为:iptables -A INPUT -s IP -j REJECT
1>编辑脚本
vim ddos.sh
ss -ant |awk -F ' +|:' '/ESTAB/{ip[$6]++}END{for(i in ip)if(ip[i]>=100){system("iptables -A INPUT -s "i " -j DROP")}}'
2>增加脚本权限
chmod +x ddos.sh
3>设置定时任务
*/5 * * * * /opt/ddos.sh
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值