centos下多网卡做bond脚本

多网卡或者单网卡形式下的网卡bonding

	#! /bin/sh
	#获取当前网卡数
	ethnum=`lspci | grep Ethernet | wc -l`
	echo $ethnum
	#如果网卡数小于等于1则什么都不做
	if [ $ethnum -le 1 ]
	        then
	        echo "do nothing!"
	fi
	#如果网卡数大于等于2则
	if [ $ethnum -ge 2 ]
	        then

<!--more-->
	 
	#-------  添加一个bond0的网卡
	    echo "DEVICE=bond0" > /etc/sysconfig/network-scripts/ifcfg-bond0
	    echo "ONBOOT=yes" >> /etc/sysconfig/network-scripts/ifcfg-bond0
	    echo "IPADDR=192.168.3.104" >> /etc/sysconfig/network-scripts/ifcfg-bond0
	    echo "NETMASK=255.255.0.0" >> /etc/sysconfig/network-scripts/ifcfg-bond0
	    echo "GATEWAY=192.168.1.1" >> /etc/sysconfig/network-scripts/ifcfg-bond0
	    echo "BOOTPROTO=static" >> /etc/sysconfig/network-scripts/ifcfg-bond0
	    echo "USERCTL=no" >> /etc/sysconfig/network-scripts/ifcfg-bond0
	#--------
	    echo "ifenslave bond0" >> /etc/rc.local
	#--------写其他网卡的配置文件
	    for i in $(seq $ethnum);
	    do
	num=`expr $i - 1`
	     echo "BOOTPROTO=none" >  /etc/sysconfig/network-scripts/ifcfg-eth$num
	     echo "DEVICE=eth$num" >>  /etc/sysconfig/network-scripts/ifcfg-eth$num
	     echo "ONBOOT=yes" >>  /etc/sysconfig/network-scripts/ifcfg-eth$num
	     echo "MASTER=bond0" >>  /etc/sysconfig/network-scripts/ifcfg-eth$num
	     echo "USERCTL=no" >>  /etc/sysconfig/network-scripts/ifcfg-eth$num
	     echo "SLAVE=yes" >>  /etc/sysconfig/network-scripts/ifcfg-eth$num
	     sed -i 's/ifenslave.*/& eth'"$num"'/g' /etc/rc.local
	    done;
	echo "alias bond0 bonding" > /etc/modprobe.d/modprobe.conf
	echo "options bond0 miimon=100 mode=balance-rr" >> /etc/modprobe.d/modprobe.conf
	        modprobe bonding
	    /etc/init.d/network   restart
	fi

写于: 2013年08月06日
更新于: 2015年03月22日