Linux--網卡聚合簡單腳本(bond0)

#!/bin/bash
#by:cai

#修改系統語言包,將zh_CN.UTF-8 改成 zh_CN.GB18030
#輸入命令:如vi  /etc/sysconfig/i18n (注意改好之後必須重啓一下系統才行)
sed -i -e 's/^/#/g' -e 1i\LANG="zh_CN.GB18030" /etc/sysconfig/i18n
source /etc/sysconfig/i18n
echo "##########################################################"
echo "注意:如果在輸入的過程中輸錯,請按ctrl+backspace鍵刪除。"
echo "##########################################################"

bond_explain () {
   echo "#########################################################################"
   echo "
	mode=0表示load balancing (round-robin)爲負載均衡方式,兩塊網卡都工作。
	mode=1表示fault-tolerance (active-backup)提供冗餘功能,工作方式是主備的工作方式,也就是說默認情況下只有一塊網卡工作,另一塊做備份.
	mode=2表示balance-x,提供負載均衡和冗餘功能。
	mode=3表示broadcast,這個模式提供容錯性。
	mode=4表示802.3ad,提供了ethtool的迅速,以及使用了802.3ad模式
	mode=5表示balance-tlb,自動適應負載均衡,自動切換故障。在此基礎上Ethtool支持驅動。
	mode=6表示在5模式的基礎上優化了arp的廣播信息。"
	echo "###########################################################################"
	read -p "請你輸入一種你要的聚合方式(mode=1):" MODE 
	read -p "請問你要創建聚合的名稱(bond0):" BOND
	read -p "請輸入你要設置的ip(192.168.0.10):" IP
	read -p "請輸入你要設置的netmask(255.255.255.0):" NETMASK
	read -p " 請輸入你要設置的gateway(192.168.0.1):" GATEWAY
}
bond_explain
network_explain () {
	echo "###############################################"
	echo "您現階段可以用的網卡,如下:"
#	echo `ifconfig -a | grep   -i  link | awk  '{print $1}' `
	echo `ifconfig -a | grep   -i  "Link encap" | awk '{print $1}' `
	echo "################################################"
	read -p   "麻煩你選擇你要的網卡做聚合(eth0 eth1):"  NIC
	echo $NIC >> .tmp.txt
	NIC_num=`awk '{print NF }' .tmp.txt`

 	for i in `seq $NIC_num`
	do
		NIC_true=`awk -v  a=$i '{ print $a }' .tmp.txt`
		DIR_NIC=/etc/sysconfig/network-scripts
		if [ $NIC_true == $NIC_true ];then
		cp $DIR_NIC/ifcfg-$NIC_true  $DIR_NIC/ifcfg-$NIC_true.bak
#		cat /dev/null > $DIR_NIC/ifcfg-$NIC_true

#		cat >> $DIR_NIC/ifcfg-$NIC_true <<EOF
#			BOOTPROTO=none
#			TYPE=Ethernet
#			DEVICE=$NIC_true
#			ONBOOT=yes
#			MASTER=$BOND
#			SLAVE=yes
#EOF
####	或者
	echo "DEVICE=$NIC_true
			MASTER=$BOND
			SLAVE=yes" >> $DIR_NIC/ifcfg-$NIC_true
#			
	sed -i -e "/^ONBOOT/"d -e /^DEVICE/a\ONBOOT=yes $DIR_NIC/ifcfg-$NIC_true
	sed -i -e "/^NM_CONTROLLED/"d -e /^DEVICE/a\NM_CONTROLLED=no $DIR_NIC/ifcfg-$NIC_true
	sed -i -e "/^BOOTPROTO/"d -e /^DEVICE/a\BOOTPROTO=none $DIR_NIC/ifcfg-$NIC_true
	
	fi
done
	 rm -rf .tmp.txt
#	 cat >>$DIR_NIC/ifcfg-$BOND<<EOF
#			
#				DEVICE=$BOND
#				ONBOOT=yes
#				NM_CONTROLLED=no
#				BOOTPROTO=static
#               IPADDR=$IP
#               NETMASK=$NETMASK
#               GATEWAY=$GATEWAY			
#EOF
#或者

		echo    "DEVICE=$BOND
				ONBOOT=yes
				NM_CONTROLLED=no
				BOOTPROTO=static
                IPADDR=$IP
                NETMASK=$NETMASK
                GATEWAY=$GATEWAY" >> $DIR_NIC/ifcfg-$BOND

#

echo " modify modprobe.d/bond.conf"
echo "##### for bond configure ######" >> /etc/modprobe.d/bond.conf
echo "alias ${BOND} bonding" >> /etc/modprobe.d/bond.conf
echo "options ${BOND} miimon=100 ${MODE}" >> /etc/modprobe.d/bond.conf
}
network_explain
echo "全部配置完成,等待重啓網卡中。(ok)"
sleep 3
service network restart	


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章