更新-----Scripts:执行双网卡绑定

#!/bin/bash

#-------------------------------------------------------------------------------

# Name:      netbond

# Filename : netbond.sh

# Local:     



# What:      用于双网卡绑定

# HowTo :    sh ./netbond.sh ethN ethN bondN ipaddr netmask gateway



# Version   : 1.1 2013.9.6 对输入进行判断,因为已经发生过一次输入错误导致配置失败

#             1.0 2013.9.3

# Release   : 2013-9-3

# Author    : Gtlions

# Copyright : Copyright (c) Gtlions 2013 <gtlions.l@gmail.com>   

# Licence   : <Gtlions's licence>

#-------------------------------------------------------------------------------

echo "You are logged in as `whoami`"; 

if [ `whoami` != root ]; then 

	echo "Must be logged as root run script." 

	exit 1

fi 



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 [ `echo $ETHN1 |grep 'eth'|wc -l` -eq 0 ]; then

        echo "Input Error: ethN1"

fi



if [ `echo $ETHN2 |grep 'eth'|wc -l` -eq 0 ]; then

        echo "Input Error: ethN2"

fi



if [ `echo $BONDN |grep 'bond'|wc -l` -eq 0 ]; then

        echo "Input Error: bondN"

fi





#if [ `echo $IPADDR |awk -F'.' '{print NF-1}'` -eq 3 ]; then

#       :

#else

#       echo "Input Error: ipaddr"

#fi



if [ `echo $IPADDR|grep '^[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}$'|wc -l` -eq 0 ] ; then

        echo "Input Error: ipaddr"

fi

if [ `echo $NETMASK|grep '^[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}$'|wc -l` -eq 0 ] ; then

        echo "Input Error: netmask"

fi

if [ `echo $GATEWAY|grep '^[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}$'|wc -l` -eq 0 ] ; then

        echo "Input Error: gateway"

fi



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\noptions $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



你可能感兴趣的:(script)