SElinux、AWK基础用法示例

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

  • 脚本
#!/bin/bash
if [ $# -eq 0 ];then
        echo 请输入参数,ON 为启用,OFF为禁用。
elif [[ $1 =~ [Oo][Nn] ]];then
        sed -i "s/^SELINUX=[[:alpha:]].*/SELINUX=enforcing/" /etc/selinux/config
        echo SELinux 已启用,重启后生效。
elif [[ $1 =~ [Oo][Ff][Ff] ]];then
        sed -i "s/^SELINUX=[[:alpha:]].*/SELINUX=disabled/" /etc/selinux/config
        echo SELinux 已禁用,重启后生效。
else
        echo 参数错误,未做任何设置。
fi
  • 执行
# 授权
[root@centos7 ~]# chmod +x selinux.sh

# 启用
[root@centos7 ~]# ./selinux.sh on
SELinux 已启用,重启后生效。

# 禁用
[root@centos7 ~]# ./selinux.sh off
SELinux 已禁用,重启后生效。

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

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

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

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

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

  • 脚本 /root/dos.sh
#!/bin/bash
ss -nt | awk -F " +|:" '{ip[$6]++}END{for(i in ip){if(ip[i]>100){system("iptables -A INPUT -s "i" -j REJECT")}}}'
  • 任务计划
# 授权
[root@centos7 ~]#  chmod+x /root/dos.sh

# 设置
[root@centos7 ~]# crontab
*/5 * * * * /bin/bash /root/dos.sh

# 查看
[root@centos7 ~]# crontab -l
*/10 * * * * /bin/bash /root/dos.sh
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值