在写shell脚本的时候,需要根据linux的操作系统的版本使用不同的命令来关闭防火墙的,如下就是具体脚本内容:
#!/bin/bash
#linux 7的防火墙关闭操作
firewalld(){
systemctl status firewalld | grep "running" &>/dev/null
if [ $? -eq 0 ]
then
echo -e "INFO `date +%Y-%m-%d_%H:%M:%S` 防火墙处于开启状态,需要进行关闭操作!"
echo -e "INFO `date +%Y-%m-%d_%H:%M:%S` 防火墙正在关闭中..."
systemctl stop firewalld &>/dev/null
echo -e "INFO `date +%Y-%m-%d_%H:%M:%S` 防火墙已经关闭!"
#再次检查防火墙状态
systemctl status firewalld | grep "running" &>/dev/null
if [ $? -ne 0 ]
then
echo -e "INFO `date +%Y-%m-%d_%H:%M:%S` 防火墙已经处于关闭状态,关闭操作成功"
else
echo -e "INFO `date +%Y-%m-%d_%H:%M:%S` 防火墙已经处于开启状态,关闭操作失败,请手台操作!"
fi
else
echo -e "INFO `date +%Y-%m-%d_%H:%M:%S` 防火墙已经处于关闭状态,无需进行关闭操作"
fi
}
#linux 6的防火墙关闭操作
iptable(){
service iptables status | grep "is not running" &>/dev/null
if [ $? -eq 0 ]
then
echo -e "INFO `date +%Y-%m-%d_%H:%M:%S` 防火墙处于关闭状态,无需要进行关闭操作!"
else
echo -e "INFO `date +%Y-%m-%d_%H:%M:%S` 防火墙处于开启状态,需要进行关闭操作!"
echo -e "INFO `date +%Y-%m-%d_%H:%M:%S` 防火墙正在关闭中..."
service iptables stop
echo -e "INFO `date +%Y-%m-%d_%H:%M:%S` 防火墙已经关闭!"
#再次判断防火墙的状态
service iptables status | grep "is not running" &>/dev/null
if [ $? -ne ]
then
echo -e "INFO `date +%Y-%m-%d_%H:%M:%S` 防火墙处于开启状态,进行关闭操作失败,请后台操作!"
else
echo -e "INFO `date +%Y-%m-%d_%H:%M:%S` 防火墙处于关闭状态,关闭操作成功!"
fi
fi
}
#防护检查函数
selinux(){
#判断当前的状态
result=`getenforce`
if [ $result = Enforing ]
then
echo -e "INFO `date +%Y-%m-%d_%H:%M:%S` selinux是开启状态,需要关闭!"
#临时关闭操作
setenforce 0 &>/dev/null
#永久关闭操作
find_key="SELINUX="
sed -ri "/^$find_key/c${find_key}disabled" /etc/selinux/config
result_1=`getenforce`
if [ $result_1 = Enforing ]
then
echo -e "INFO `date +%Y-%m-%d_%H:%M:%S` selinux关闭操作失败,请手台进行操作"
exit 2
else
echo -e "INFO `date +%Y-%m-%d_%H:%M:%S` selinux关闭成功继续部署"
fi
else
echo -e "INFO `date +%Y-%m-%d_%H:%M:%S` selinux是关闭状态,无需操作!"
fi
}
#服务器的操作系统的判断
edition=`cat /etc/redhat-release|sed -r 's/.* ([0-9]+)\..*/\1/'`
ed=`cat /etc/redhat-release`
if [ "X$edition" == "X6" ]
then
echo -e "INFO `date +%Y-%m-%d_%H:%M:%S` 当前服务器操作系统版本是linux 6版本系统,具体版本:$ed "
iptable
selinux
elif [ "X$edition" == "X7" ]
then
echo -e "INFO `date +%Y-%m-%d_%H:%M:%S` 当前服务器操作系统版本是linux 7版本系统,具体版本:$ed "
firewalld
selinux
fi
如上就是脚本的内容,具体的同学可以在服务上测试;