仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1598|回复: 9
打印 上一主题 下一主题

[shell编程] 来一发Shell剧本之主动修正IP

[复制链接]
简单生活 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-14 20:18:53 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们!作为一位LinuxSA,一样平常运维中良多中央城市用到剧本,而办事器的ip一样平常接纳静态ip大概MAC绑定,固然后者对照操纵起来绝对烦琐,而前者我们能够设置主机名、ip信息、网关等设置。修正成特定的主机名在保护和办理方面也对照便利。以下剧本用处为:修正ip和主机名等相干信息,能够依据实践需求修正,触类旁通!
  1. #!/bin/sh#autoChangeipnetmaskgatewayscripts#wugk2012-12-17cat<<EOF++++++++主动修正ip和主机名等相干信息+++++++++ETHCONF=/etc/sysconfig/network-scripts/ifcfg-eth0HOSTS=/etc/hostsNETWORK=/etc/sysconfig/networkDIR=/data/backup/`date+%Y%m%d`NETMASK=255.255.255.0+++++++++-------------------------+++++++++++EOF#DefinePath界说变量,能够依据实践情形修正ETHCONF=/etc/sysconfig/network-scripts/ifcfg-eth0HOSTS=/etc/hostsNETWORK=/etc/sysconfig/networkDIR=/data/backup/`date+%Y%m%d`NETMASK=255.255.255.0echo"================================================"echo#界说change_ip函数functionChange_ip(){#判别备份目次是不是存在,中括号前后都有空格,!叹号在shell暗示相反的意义#if[!-d$DIR];thenmkdir-p$DIRfiecho"NowChangeipaddress,DoingBackupInte***ceeth0"cp$ETHCONF$DIRgrep"dhcp"$ETHCONF#以下$?用来判别上一次操纵的形态,为0,暗示上一次操纵形态准确大概乐成#if[$?-eq0];then#read-p交互输出变量IPADDR,注冒号后有空格,sed-i修正设置文件#read-p"PleaseinsertipAddress:"IPADDRsed-is/dhcp/static/g$ETHCONF#awk-F.意义是以.号为分开域,打印前三列#echo-e"IPADDR=$IPADDR
  2. NETMASK=$NETMASK
  3. GATEWAY=`echo$IPADDR|awk-F.{print$1"."$2"."$3}`.254">>$ETHCONFecho"ThisIPaddressChangesuccess!"elseecho-n"This$ETHCONFisstaticexist,pleaseensureChangeYesorNO":readifiif["$i"=="y"-o"$i"=="yes"];thenread-p"PleaseinsertipAddress:"IPADDRcount=(`echo$IPADDR|awk-F.{print$1,$2,$3,$4}`)#界说数组,${#count[@]}代表猎取变量值总个数#A=${#count[@]}#while前提语句判别,个数是不是准确,不准确轮回提醒输出,也能够用[0-9]来判别ip#while["$A"-ne"4"]doread-p"PleasereInsteripAddress,example192.168.0.11ip":IPADDRcount=(`echo$IPADDR|awk-F.{print$1,$2,$3,$4}`)A=${#count[@]}done#sed-e能够一连修正多个参数#sed-i-es/^IPADDR/#IPADDR/g-es/^NETMASK/#NETMASK/g-es/^GATEWAY/#GATEWAY/g$ETHCONF#echo-e
  4. 为一连追加内容,并主动换行#echo-e"IPADDR=$IPADDR
  5. NETMASK=$NETMASK
  6. GATEWAY=`echo$IPADDR|awk-F.{print$1"."$2"."$3}`.254">>$ETHCONFecho"ThisIPaddressChangesuccess!"elseecho"This$ETHCONFstaticexist,pleaseexit"exit$?fi}#界说hosts函数############functionhosts##############functionChange_hosts(){if[!-d$DIR];thenmkdir-p$DIRficp$HOSTS$DIRread-p"Pleaseinsertipaddress":IPADDRhost=`echo$IPADDR|seds/./-/g`cat$HOSTS|grep127.0.0.1|grep"$host"if[$?-ne0];thensed-i"s/127.0.0.1/127.0.0.1$host/g"$HOSTSecho"Thishostschangesuccess"elseecho"This$hostISExist.........."fi}###########fuctionnetwork################界说network函数functionChange_network(){if[!-d$DIR];thenmkdir-p$DIRficp$NETWORK$DIRread-p"Pleaseinsertipaddress":IPADDRhost=`echo$IPADDR|seds/./-/g`grep"$host"$NETWORKif[$?-ne0];thensed-i"s/^HOSTNAME/#HOSTNAME/g"$NETWORKecho"NETWORK=$host">>$NETWORKelseecho"This$hostISExist.........."fi}#PS3通常是菜单提醒信息#PS3="PleaseSelectiporhostsMenu":#select为菜单选择下令,格局为select$varin..command..do....doneselectiin"Change_ip""Change_hosts""Change_network"do#case体例,一样平常用于多种前提下的判别case$iinChange_ip)Change_ip;;Change_hosts)Change_hosts;;Change_network)Change_network;;*)echoecho"PleaseInsert$0:Change_ip(1)|Change_hosts(2)|Change_network(3)"echo;;esacdone
复制代码

如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的小伙伴们!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-10 14:30

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表