1、编写脚本selinux.sh,实现开启或禁用SELinux功能
#!/bin/bash
confdir=/etc/selinux/config #定义变量
case "$1" in #定义位置变量
on) #$1如果是on则执行以下操作
sed -ir 's/^SELINUX=.*/SELINUX=enforcing/' $confdir #使用sed修改配置
echo "Open successfully" #打印开启成功
;;
off) #$1如果是off则执行以下操作
sed -ir 's/^SELINUX=.*/SELINUX=disable/' $confdir #使用sed修改配置
echo "Open successfully" #打印关闭成功
;;
*) #$1如果是其他任意字符则执行以下操作
echo "Usage:`basename $0` on|off" #打印提示位置变量为on或off
exit #结束脚本
2、统计/etc/fstab文件中每个文件系统类型出现的次数
awk '/^[^#]/{print $3}' /etc/fstab |sort |uniq -c
3、提取出字符串Yd$C@M05MB%9&Bdh7dq+YVixp3vpw中的所有数字
echo 'Yd$C@M05MB%9&Bdh7dq+YVixp3vpw'|awk 'gsub(/[^0-9]/,"",$0)'
4、解决DOS攻击生产案例:根据web日志或者或者网络连接数,监控当某个IP 并发连接数或者短时内PV达到100,即调用防火墙命令封掉对应的IP,监控频 率每隔5分钟。防火墙命令为:iptables -A INPUT -s IP -j REJECT
#!/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