zoukankan      html  css  js  c++  java
  • 更新-----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
    ONBOOT=yes
    TYPE=Ethernet
    USERCTL=yes
    BOOTPROTO=static
    IPADDR=$IPADDR
    NETMASK=$NETMASK
    GATEWAY=$GATEWAY">$BONDFILE
    		chmod 644 $BONDFILE
    		echo -e "DEVICE=$ETHN1
    ONBOOT=yes
    BOOTPROTO=none
    TYPE=Ethernet
    USERCTL=yes
    MASTER=$BONDN
    SLAVE=yes">$ETHN1FILE
    		echo -e "DEVICE=$ETHN2
    ONBOOT=yes
    BOOTPROTO=none
    TYPE=Ethernet
    USERCTL=yes
    MASTER=$BONDN
    SLAVE=yes">$ETHN2FILE
    		
    		cat /etc/modprobe.conf |grep "$BONDN">null
    		RESULT=$?
    
    		if [ $RESULT -eq 1 ] ; then
    			echo -e "alias $BONDN bonding
    options $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
    



  • 相关阅读:
    linux 文件系统管理三部曲之二:创建文件系统
    linux 文件系统管理三部曲之一:磁盘分区
    Django 链接MySQL及数据操作
    redis事务
    redis配置文件详解
    redis中hash数据类型
    redis的基础知识
    redis两种持久化方式RDB和AOF
    git命令
    .gitignore中添加的某个忽略文件并不生效
  • 原文地址:https://www.cnblogs.com/suncoolcat/p/3306481.html
Copyright © 2011-2022 走看看