Linux Shell 스 크 립 트 의 자동 수정 IP

Linux SA 로 서 일상적인 운영 차원 에서 스 크 립 트 를 사용 하 는 곳 이 많 습 니 다. 서버 의 ip 은 보통 정적 ip 또는 MAC 로 연결 되 어 있 습 니 다. 물론 후 자 는 비교적 번 거 롭 습 니 다. 전 자 는 호스트 이름, ip 정보, 게 이 트 웨 이 등 설정 을 설정 할 수 있 습 니 다.특정 호스트 이름 으로 수정 하 는 것 도 유지 와 관리 에 편리 합 니 다.다음 스 크 립 트 의 용 도 는 ip 와 호스트 이름 등 관련 정 보 를 수정 하고 실제 수요 에 따라 수정 할 수 있 습 니 다. 하 나 를 보면 열 을 알 수 있 습 니 다!
   
   
   
   
  1. #!/bin/sh  
  2. #auto Change ip netmask gateway scripts  
  3. #wugk 2012-12-17  
  4. cat << EOF  
  5. ++++++++ ip +++++++++ 
  6. ETHCONF=/etc/sysconfig/network-scripts/ifcfg-eth0  
  7. HOSTS=/etc/hosts  
  8. NETWORK=/etc/sysconfig/network  
  9. DIR=/data/backup/`date +%Y%m%d`  
  10. NETMASK=255.255.255.0  
  11. +++++++++-------------------------+++++++++++ 
  12. EOF   
  13. #Define Path   ,  
  14.   
  15.   ETHCONF=/etc/sysconfig/network-scripts/ifcfg-eth0  
  16.   HOSTS=/etc/hosts  
  17.   NETWORK=/etc/sysconfig/network  
  18.   DIR=/data/backup/`date +%Y%m%d`  
  19.   NETMASK=255.255.255.0  
  20.   
  21. echo "================================================"    
  22. echo  
  23. # change_ip  
  24. function Change_ip ()  
  25. {   
  26. # , ,! shell #  
  27. if  
  28.    [ ! -d $DIR ];then  
  29.   
  30.    mkdir -p $DIR  
  31.   
  32. fi  
  33.   
  34.   echo "Now Change ip address ,Doing Backup Interface eth0"  
  35.   cp $ETHCONF $DIR  
  36.   
  37.   grep "dhcp"  $ETHCONF  
  38. # $? , 0, #    
  39. if  
  40.   
  41.   [ $? -eq 0 ];then  
  42. #read -p  IPADDR, ,sed -i  # 
  43.   read -p "Please insert ip Address:" IPADDR  
  44.   sed -i 's/dhcp/static/g' $ETHCONF  
  45. #awk -F.  . , # 
  46.   echo -e "IPADDR=$IPADDR\nNETMASK=$NETMASK\nGATEWAY=`echo $IPADDR|awk -F. '{print $1"."$2"."$3}'`.254" >>$ETHCONF  
  47.   echo "This IP address Change success !"  
  48.   
  49. else  
  50.     
  51.   echo -n  "This $ETHCONF is static exist ,please ensure Change Yes or NO":  
  52.   read i  
  53.   
  54. fi  
  55.   
  56. if    
  57.   [ "$i" == "y" -o "$i" == "yes" ];then  
  58.   read -p "Please insert ip Address:" IPADDR  
  59.   
  60.   count=(`echo $IPADDR|awk -F. '{print $1,$2,$3,$4}'`)   
  61.  # , ${#count[@]} # 
  62.   A=${#count[@]}  
  63.  #while , , , [0-9] ip# 
  64. while   
  65.   
  66.   [ "$A" -ne "4" ]  
  67.   
  68. do  
  69.   
  70.   read -p "Please re Inster ip Address,example 192.168.0.11 ip": IPADDR  
  71.   count=(`echo $IPADDR|awk -F. '{print $1,$2,$3,$4}'`)   
  72.   A=${#count[@]}  
  73.   
  74. done  
  75.  #sed -e  # 
  76.   sed -i -e 's/^IPADDR/#IPADDR/g' -e 's/^NETMASK/#NETMASK/g' -e 's/^GATEWAY/#GATEWAY/g' $ETHCONF 
  77. #echo -e 
    , # 
  78.   echo -e "IPADDR=$IPADDR\nNETMASK=$NETMASK\nGATEWAY=`echo $IPADDR|awk -F. '{print $1"."$2"."$3}'`.254" >>$ETHCONF  
  79.   echo "This IP address Change success !"  
  80. else  
  81.   echo "This $ETHCONF static exist,please exit"  
  82.   exit $?  
  83.   
  84. fi  
  85.  
  86. }  
  87.  
  88. # hosts   
  89. ############function hosts##############  
  90. function Change_hosts ()  
  91. {  
  92.   
  93. if  
  94.   
  95.    [ ! -d $DIR ];then  
  96.    mkdir -p $DIR  
  97.   
  98. fi  
  99.   
  100.   cp $HOSTS $DIR  
  101.   read -p "Please insert ip address": IPADDR  
  102.   
  103.   host=`echo $IPADDR|sed 's/\./-/g'`  
  104.   cat $HOSTS |grep 127.0.0.1 |grep "$host"  
  105.      
  106. if  
  107.   [ $? -ne 0 ];then  
  108.   sed -i "s/127.0.0.1/127.0.0.1 $host/g" $HOSTS  
  109.   echo "This hosts change success "  
  110.   
  111. else  
  112.   echo "This $host IS Exist .........."  
  113.   
  114. fi  
  115.  
  116. }
  117.   
  118. ###########fuction network###############  
  119. # network   
  120. function Change_network ()   
  121. {  
  122.    if  
  123.   
  124.    [ ! -d $DIR ];then  
  125.    mkdir -p $DIR  
  126.   
  127.  fi  
  128.   cp $NETWORK $DIR  
  129.   read -p "Please insert ip address": IPADDR  
  130.   
  131.   host=`echo $IPADDR|sed 's/\./-/g'`  
  132.   grep "$host" $NETWORK  
  133.   
  134.    if  
  135.   [ $? -ne 0 ];then  
  136.   sed -i "s/^HOSTNAME/#HOSTNAME/g" $NETWORK  
  137.   echo "NETWORK=$host" >>$NETWORK  
  138.   
  139. else  
  140.   echo "This $host IS Exist .........."  
  141.   
  142.   fi  
  143.    
  144. }  
  145.  
  146. #PS3 #  
  147.   PS3="Please Select ip or hosts Menu":  
  148. #select , select $var in ..command.. do .... done    
  149.   select i in  "Change_ip" "Change_hosts" "Change_network"  
  150.  
  151. do  
  152. #case  ,   
  153. case $i in   
  154. Change_ip )  
  155. Change_ip  
  156. ;;  
  157. Change_hosts )  
  158. Change_hosts  
  159. ;;  
  160. Change_network )  
  161. Change_network   
  162. ;;  
  163. *)  
  164. echo  
  165. echo "Please Insert $0: Change_ip(1)|Change_hosts(2)|Change_network(3)"  
  166. echo  
  167. ;;  
  168. esac  
  169.  
  170. done  

여러분 이 함께 진 보 를 교류 하고 더 많은 글 을 공유 하 는 것 을 환영 합 니 다!지식 은 나 누 는 것 이 야 말로 우 리 를 더욱 빨리 발전 시 킬 수 있다!

좋은 웹페이지 즐겨찾기