Linux 配置网桥脚本


Linux 配置网桥脚本
  1. #!/bin/sh 
  2.  
  3. ############################################################## 
  4. # function: create linux bridge, CentOS 5 test pass.  
  5. # user: chenjian 
  6. # date : 2011-06-30 ^_^. 
  7. ############################################################## 
  8.  
  9. NETWORK_DIR=/etc/sysconfig/network-scripts 
  10.  
  11. if ! `rpm -qi bridge-utils > /dev/null`; 
  12.         then 
  13.                 echo "bridge-utils package not install." 
  14. fi 
  15.  
  16. rm -rf $NETWORK_DIR/ifcfg-br* 
  17. read -p "Input your bridge name,ex br0: " 
  18.  
  19. if [ `echo $REPLY|wc -L` -eq 0 ]; 
  20.          then 
  21.          REPLY=br0 
  22. fi 
  23.  
  24. BRIDGE=$REPLY 
  25. ETHERNET_ALL=$( ls -l $NETWORK_DIR|awk -F'-' '/ifcfg-eth/{print $8}') 
  26.  
  27. while  [ `echo $REPLY|wc -w` -lt 2 ]; 
  28.         do 
  29.                 read -p "Input you need to use the network adapter, separated by a space. current cards(`echo $ETHERNET_ALL`),chose two : " 
  30.  
  31. done 
  32.  
  33. ETHERNET=$REPLY 
  34.  
  35. for i in `seq 1 3`; 
  36.         do 
  37.                 read -p "Input the bridge ip address and netmask. separated by a space: " 
  38.         if [ `echo $REPLY|wc -L` -eq 0 ]; 
  39.         then  
  40.                 echo "Input empty. this bridage will no ip address. " 
  41.                 REPLY="0.0.0.0 0.0.0.0" 
  42.                 sleep 3 
  43.                 break 
  44.         elif `echo $REPLY|grep -v '[0-9]\.'  > /dev/null`; 
  45.         then 
  46.                 echo "Use only numbers and points." 
  47.         elif [ `echo $REPLY|awk '{print $2}'|wc -L` -eq 0 ] 
  48.         then  
  49.                 echo "Input errors, exit." 
  50.                 exit 2 
  51.         else 
  52.                 break 
  53.         fi 
  54. done 
  55.  
  56. IP=`echo $REPLY|awk '{print $1}'` 
  57. NETMASK=`echo $REPLY|awk '{print $2}'` 
  58.  
  59.  
  60. brctl addbr $BRIDGE 
  61.  
  62. cat > $NETWORK_DIR/ifcfg-$BRIDGE <<-EOF 
  63. DEVICE=$BRIDGE 
  64. BOOTPROTO=static 
  65. ONBOOT=yes 
  66. NETMASK=$NETMASK 
  67. IPADDR=$IP 
  68. TYPE=Bridge 
  69. EOF 
  70.  
  71. echo ------------------------------------- 
  72. echo "Bridge info " 
  73. echo ------------------------------------- 
  74.  
  75. cat $NETWORK_DIR/ifcfg-$BRIDGE 
  76. echo ""  
  77. for i in `echo $ETHERNET`; 
  78.         do  
  79.  
  80. MAC=$(ifconfig $i|awk '/HWaddr/{print $NF }') 
  81. cat > $NETWORK_DIR/ifcfg-$i <<EOF 
  82. DEVICE=$i 
  83. HWADDR=$MAC 
  84. BOOTPROTO=none 
  85. ONBOOT=yes 
  86. HOTPLUG=no 
  87. TYPE=Ethernet 
  88. BRIDGE=$BRIDGE 
  89. EOF 
  90.  
  91. echo ------------------------------------- 
  92. echo "$i info" 
  93. echo ------------------------------------- 
  94. cat $NETWORK_DIR/ifcfg-$i   
  95. echo "" 
  96.  
  97. done 
  98. echo "" 
  99.  
  100. echo ------------------------------------- 
  101. echo -e "install successful ,you need to restart your network" 
  102. echo ------------------------------------- 
  103.  
  104. exit 0; 

相关内容