Linux实现双网卡绑定自动化脚本

scadm 2021年4月25日00:31:21
评论
545 1987字

在上一篇写了双网卡绑定和卸载:Linux实现双网卡绑定和卸载

其实认真观察上面的步骤,都是固定的。于是我们就可以写个脚本实现自动化配置

#!/bin/bash
if [ $# -lt 6 ];then
    echo “Usage: $0 <bond*> <eth*> <eth*> <ipaddress> <netmask> <gateway>”
    echo “eg: $0 bond0 eth0 eth1 192.168.0.1 255.255.255.0 192.168.0.254″
    exit 1
fi
#修改 ifcfg-bond* 文件
echo “DEVICE=$1
IPADDR=$4
NETMASK=$5
GATEWAY=$6
ONBOOT=yes
BOOTPROTO=none
USERCTL=no” >/tmp/ifcfg-$1
mv -f /tmp/ifcfg-$1 /etc/sysconfig/network-scripts/
#修改 ifcfg-eth0 文件
echo “DEVICE=$2
USERCTL=no
ONBOOT=yes
MASTER=$1
SLAVE=yes
BOOTPROTO=none” >/tmp/ifcfg-$2
mv -f /tmp/ifcfg-$2 /etc/sysconfig/network-scripts/
#修改 ifcfg-eth1 文件
echo “DEVICE=$3
USERCTL=no
ONBOOT=yes
MASTER=$1
SLAVE=yes
BOOTPROTO=none” >/tmp/ifcfg-$3
mv -f /tmp/ifcfg-$3 /etc/sysconfig/network-scripts/
##修改 network 文件
#sed /GATEWAY/d /etc/sysconfig/network >/tmp/network
#echo “GATEWAY=”$6”">>/tmp/network
#mv -f /tmp/network /etc/sysconfig/
#修改 modules.cof/modprobe.cof
MODCONF=/NULL
TEMPFILE1=/tmp/mod1.$$
TEMPFILE2=/tmp/mod2.$$
BAKFILE=/etc/.modconf
#选择绑定的模式是轮询还是冗余,一般建议选择1
echo “Please Select Your Bond Mode:(balance-rr/active-backup)or(0/1)?”
read MODE
if [ -f /etc/modprobe.conf ]; then
     MODCONF=/etc/modprobe.conf
else
      MODCONF=/etc/modules.conf
fi
cp $MODCONF $BAKFILE
sed ‘/alias[ t]*’$1′[ t]*bonding/d;/options[ t]*’$1′[ t]*/d;/install.*’$1′/d’ $MODCONF > $TEMPFILE1
cp $TEMPFILE1 $TEMPFILE2
if [ "$(grep "alias.*bonding" $TEMPFILE1)" != "" ]; then
     bondcount=$(grep “alias.*bonding” $TEMPFILE1 | wc -l)
         elif [ "$(grep "install.*bond.*" $TEMPFILE1)" != "" ]; then
              bondcount=$(grep “install.*bond.*” $TEMPFILE1 | wc -l)
         else
     bondcount=0
fi
if [ "$bondcount" -ge 1 ]; then
      sed ‘/alias.*bonding/d;s/(options[ t]*)(bond[0-9]*)/install 2 /sbin/modprobe –ignore-install bonding -o 2/’ $TEMPFILE1 > $TEMPFILE2
echo “install $1 /sbin/modprobe –ignore-install bonding -o $1 miimon=100 mode=$MODE” >> $TEMPFILE2
else
       echo “alias $1 bonding” >> $TEMPFILE2
       echo “options $1 miimon=100 mode=$MODE” >> $TEMPFILE2
fi
mv -f $TEMPFILE2 $MODCONF
#重启网络
echo “System will restart network continue(y/n)?”
read bb
if [ "$bb" = "y" ] || [ "$bb" = "yes" ] || [ "$bb" = "Y" ];then
      for tempmod in $(lsmod | grep -i bond | awk ‘{print $1}’)
do
      modprobe -r bonding -o “$tempmod”
done
/etc/init.d/network restart
fi
echo “OK!”
exit 0
继续阅读
shell最后更新:2021-7-4
scadm
  • 本文由 发表于 2021年4月25日00:31:21
  • 转载请务必保留本文链接:https://www.wscyun.com/1004
Hadoop 节点扩容 运维

Hadoop 节点扩容

配置好hosts解析 # cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdom...
hadoop 分布式存储部署 运维

hadoop 分布式存储部署

Hadoop概念 Hadoop实现了一个分布式文件系统( Distributed File System),其中一个组件是HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost...
CEPH分布式存储 运维

CEPH分布式存储

ceph简介: Ceph是一种为优秀的性能、可靠性和可扩展性而设计的统一的、分布式文件系统。ceph 的统一体现在可以提供文件系统、块存储和对象存储,分布式体现在可以动态扩展。在国内一些公司的云环境中...
docker容器部署 Docker

docker容器部署

查找镜像文件 # 在Docker官方仓库中搜索Nginx镜像,Nginx镜像文件中只包含Nginx软件程序、数据文件 # docker search nginx NAME DESCRIPTION ST...