標籤:shell linux 指令碼
本指令碼主要用於修改IP地址為靜態!
#!/bin/bash##Target: Auto Chmod IP Information!#Date: 2015-05-10#Author: Jacken#QQ:654001593#QQ Group:170544180#Version: 1.0#Only allow define variableshopt -s -o nounset#Define VariableETHCONFIG=‘/etc/sysconfig/network-scripts/ifcfg-eth1‘HOSTS=‘/etc/hosts‘NETWORK=‘/etc/sysconfig/network‘BAKDIR="/data/backup/`date +%Y%m%d`"NETMASK=‘255.255.255.0‘GATEWAY=‘192.168.1.254‘DNS1=‘8.8.8.8‘####################################################################################################################Define Function#############################################################################################################function CHANGE_IP(){#Create Directoryif [ ! -d $BAKDIR ];thenmkdir -p $BAKDIRfi#Prompt Information#Backup Network Filecp $ETHCONFIG $BAKDIR/`date +%Y%m%d`.${ETHCONFIG:37}$$ && echo -e "\e[32mNow Change Ip Address, Backup Interface ${ETHCONFIG:37} to $BAKDIR Done\e[0m"#Judge Get Ip Modeif `grep -q -i ‘dhcp‘ $ETHCONFIG` ;then#Change Get Ip Modesed -i ‘s/dhcp/static/Ig‘ $ETHCONFIG sed -i ‘s/^DNS/#DNS/Ig‘ $ETHCONFIGecho -e "IPADDR=$IPADDR\nNETMASK=$NETMASK\nGATEWAY=$GATEWAY\nDNS1=$DNS1" >> $ETHCONFIG echo -e ‘\e[32mIP Change Success!\e[0m‘else#Warning Informationecho -e "\e[31mThe Network alreday is static,Please ensure YES or NO: " read i #Again Confirmif [ "$i" == "y" -o "$i" == "yes" -o "$i" == "YES" ];then#Comment Old Configure sed -i -e ‘s/^IPADDR/#IPADDR/g‘ -e ‘s/^NETMASK/#NETMASK/g‘ -e ‘s/^GATEWAY/#GATEWAY/g‘ -e ‘s/^DNS/#DNS/g‘ $ETHCONFIGecho -e "IPADDR=$IPADDR\nNETMASK=$NETMASK\nGATEWAY=$GATEWAY\nDNS1=$DNS1" >> $ETHCONFIG echo -e "\e[32mThe Ip Address is $IPADDR ,Change Success!\e[0m"else#Exitecho -e "\e[31mThis $ETHCONFIG static exist, exiting...\e[0m"fifi}#################################################################################Check Ip Addressfunction CHECK_IP(){read -p "Please Input Ip address: " IPADDR#Test IP Formatecho $IPADDR|grep "^[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}$" > /dev/null 2>&1num=$?if [ $num -ne 0 ];thenecho -e "\e[31mPlease Check IP Format exiting....\e[0m"exit 2else#Get Part Of Ip a=`echo $IPADDR|awk -F. ‘{print $1}‘`b=`echo $IPADDR|awk -F. ‘{print $2}‘`c=`echo $IPADDR|awk -F. ‘{print $3}‘`d=`echo $IPADDR|awk -F. ‘{print $4}‘`if [ $a -gt 255 ] || [ $a -le 0 ];thenecho -e "\e[31mPlease Check IP Format exiting...\e[0m"exit 2fiif [ $b -gt 255 ] || [ $b -lt 0 ];thenecho -e "\e[31mPlease Check IP Format exiting...\e[0m"exit 2fiif [ $c -gt 255 ] || [ $c -lt 0 ];thenecho -e "\e[31mPlease Check IP Format exiting...\e[0m"exit 2fiif [ $d -ge 255 ] || [ $d -le 0 ];thenecho -e "\e[31mPlease Check IP Format exiting...\e[0m"exit 2fiexport $IPADDRfi}#Define PS3PS3="Please Select Your Choose:"select i in "Change IP And DNS For ${ETHCONFIG:37}" "Show ${ETHCONFIG:37} Config File" "Restart Device ${ETHCONFIG:37}" "Show ${ETHCONFIG:37} Status" "Exit" do CHOOSE=$REPLYcase $CHOOSE in 1)CHECK_IPCHANGE_IP;;2)cat $ETHCONFIG;;3)ifdown ${ETHCONFIG:37} > /dev/null 2>&1 && ifup ${ETHCONFIG:37} > /dev/null 2>&1if [ $? -eq 0 ];then echo -e "\e[32mRestart Device ${ETHCONFIG:37} Success.\e[0m"elseecho -e "\e[31mRestart Device ${ETHCONFIG:37} Failure.\e[0m"fi;;4)ifconfig ${ETHCONFIG:37};;5)echo -e ‘\e[32mByeBye!\e[0m‘exit;;*)echo -e ‘\e[31mError Number,Please Input Again!‘esacdone
示範:
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/6C/A6/wKioL1VPXILiKMC1AAZNrPsODLI760.jpg" title="11.jpg" alt="wKioL1VPXILiKMC1AAZNrPsODLI760.jpg" />
本文出自 “一步步踏入Linux世界” 部落格,請務必保留此出處http://linuxnote.blog.51cto.com/9876511/1650076
Linux Shell實戰之三 自動修改為靜態IP