Scripts:执行双网卡绑定

在批量部署大量服务器,比如几款刀片服务器的时候,处理网卡绑定的过程是比较繁琐的,而且一不小心就会操作失误,为此将操作过程组成shell,方便、高效、不出错。

#!/bin/bash
#-------------------------------------------------------------------------------
# Name:      netbond
# Filename : netbond.sh
# Local:     

# What:      用于双网卡绑定
# HowTo :    sh ./netbond.sh ethN ethN bondN ipaddr netmask gateway

# Version   : v1.0 2013.9.3
# Release   : 2013-9-3
# Author    : Gtlions
# Copyright : Copyright (c) Gtlions 2013 <gtlions.l@gmail.com>   
# Licence   : <Gtlions's licence>
#-------------------------------------------------------------------------------


if [ x$5 = x ]; then
	echo "Input Error!"
	echo "Usage: sh ./netbond.sh ethN ethN bondN ipaddr netmask gateway"
	exit 1
fi
SCRIPTFILE=$0
ETHN1=$1
ETHN2=$2
BONDN=$3
IPADDR=$4
NETMASK=$5
GATEWAY=$6
ETHN1FILE=/etc/sysconfig/network-scripts/ifcfg-$ETHN1
ETHN2FILE=/etc/sysconfig/network-scripts/ifcfg-$ETHN2
BONDFILE=/etc/sysconfig/network-scripts/ifcfg-$BONDN
ETHN1BAK=ifcfg-$ETHN1.bak
ETHN2BAK=ifcfg-$ETHN2.bak

if [ ! -f $ETHN1FILE ]; then
	echo "Error!Not exist $ETHN1FILE"
	exit 1
fi
if [ ! -f $ETHN2FILE ]; then
	echo "Error!Not exist $ETHN2FILE"
	exit 1
fi
if [ -f $BONDFILE ]; then
	echo "Error!Exist $BONDFILE"
	exit 1
fi

echo "Set Info: $ETHN1 AND $ETHN2 will bond to $BONDN : $IPADDR,$NETMASK,$GATEWAY"
echo "Go On?[Y/N]"
read GOON
GOON1=`echo $GOON |tr 'a-z' 'A-Z'|cut -c1`
if [ $GOON1 = "Y" ]; then
	
	cp $ETHN1FILE ETHN1BAK
	cp $ETHN2FILE ETHN2BAK
	if [ -f ETHN1BAK ] && [ -f ETHN2BAK ] ; then
		echo -e "DEVICE=$BONDN\nONBOOT=yes\nTYPE=Ethernet\nUSERCTL=yes\nBOOTPROTO=static\nIPADDR=$IPADDR\nNETMASK=$NETMASK\nGATEWAY=$GATEWAY">$BONDFILE
		chmod 644 $BONDFILE
		echo -e "DEVICE=$ETHN1\nONBOOT=yes\nBOOTPROTO=none\nTYPE=Ethernet\nUSERCTL=yes\nMASTER=$BONDN\nSLAVE=yes">$ETHN1FILE
		echo -e "DEVICE=$ETHN2\nONBOOT=yes\nBOOTPROTO=none\nTYPE=Ethernet\nUSERCTL=yes\nMASTER=$BONDN\nSLAVE=yes">$ETHN2FILE
		
		cat /etc/modprobe.conf |grep "$BONDN">null
		RESULT=$?

		if [ $RESULT -eq 1 ] ; then
			echo -e "alias $BONDN bonding\noption $BONDN miimon=100 mode=1">>/etc/modprobe.conf
		fi
		
		cat /etc/rc.d/rc.local|grep "$BONDN">null
		RESULT=$?
	
		if [ $RESULT -eq 1 ] ; then
			echo -e "ifenslave $BONDN $ETHN1 $ETHN2">>/etc/rc.d/rc.local
		fi

		echo "Done!Pls reboot system!"
	fi
else
	echo "Cancel!"
fi


-EOF-

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值