如何使用shell来进行版本管理-以iptables为例

Posted kiroct

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用shell来进行版本管理-以iptables为例相关的知识,希望对你有一定的参考价值。

环境:任意一台linux机器,我这里存在了iptables-legacy和iptables-nft
我需要检测如果是iptables-nft那么就使用shell来自动调整为iptables-legac

echo "开始检查测iptables模式"
ls -l /etc/alternatives/ | grep iptables-legacy >/dev/null 2>&1
if [ $? = 0 ];then 
   echo "iptables模式正确"
   exit 0
else
   echo "iptables模式错误,调整模式中......"
   update-alternatives --set iptables /xxx/xxx/iptables-legacy >/dev/null 2>&1
   ls -l /etc/alternatives/ | grep iptables-legacy >/dev/null 2>&1
   if [ $? = 0 ];then 
      echo "iptables模式调整成功"
      exit 0
   else
    echo "iptables存在错误,请查看相关设置"
    exit 110
   fi
fi

1、update-alternatives/的管理目录在/etc/alternatives/,里面存在很多软连接,只要是通过update-alternatives使用中的版本,都会存在这个目录下面,反之;如果同软件没有使用的版本则不会出现在目录下面:
举例;如果我使用update-alternatives选择了iptables-legacy,那么/etc/alternatives/下面必定是iptables-legacy,不会存在iptables-nft
2、 update-alternatives --set iptables /xxx/xxx/iptables-legacy 是一条免交互命令,前提是必须只要/xxx/xxx/iptables-legacy的绝对路径
ps:可以先用update-alternatives --config iptables 来获取具体路径
如图,我获取的是iptables-nft的具体路径,我先交互式操作选择0来获取具体路径,然后我就可以使用这个具体路径来带入免交胡命令的shell里面了

以上是关于如何使用shell来进行版本管理-以iptables为例的主要内容,如果未能解决你的问题,请参考以下文章

linux/unix -shell值iptables基础知识

CentOS7 firewalld

iptables详解:iptables规则管理

Centos8防火墙设置

iptables防火墙

系统管理员需知的 16 个 iptables 使用技巧