仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1580|回复: 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教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的小伙伴们!
只想知道 该用户已被删除
沙发
发表于 2015-1-15 22:14:56 | 只看该作者

来一发Shell剧本之主动修正IP

现在的linux操作系统如redhat,难点,红旗等,都是用这么一个内核,加上其它的用程序(包括X)构成的。
飘飘悠悠 该用户已被删除
板凳
发表于 2015-1-20 22:13:32 来自手机 | 只看该作者
Linux的成功就在于用最少的资源最短的时间实现了所有功能,这也是符合人类进化的,相信以后节能问题会日益突出。
金色的骷髅 该用户已被删除
地板
发表于 2015-1-30 07:10:29 | 只看该作者
清楚了解网络的基础知识,特别是在Linux下应用知识,如接入internet等等。
乐观 该用户已被删除
5#
发表于 2015-2-6 10:00:15 | 只看该作者
你需要提供精确有效的信息。Linux这并不是要求你简单的把成吨的出错代码或者数据完全转储摘录到你的提问中。
再见西城 该用户已被删除
6#
发表于 2015-2-15 23:23:49 | 只看该作者
另外Linux上也有很多的应用软件,安装运行了这些软件后,你就可以在Linux上编辑文档、图?片,玩游戏、上网、播放多媒体文件等。
因胸联盟 该用户已被删除
7#
发表于 2015-3-4 20:44:54 | 只看该作者
对于英语不是很好的读者红旗 Linux、中标Linux这些中文版本比较适合。现在一些Linux网站有一些Linux版本的免费下载,这里要说的是并不适合Linux初学者。
变相怪杰 该用户已被删除
8#
发表于 2015-3-11 21:14:27 | 只看该作者
另外Linux上也有很多的应用软件,安装运行了这些软件后,你就可以在Linux上编辑文档、图?片,玩游戏、上网、播放多媒体文件等。
只想知道 该用户已被删除
9#
发表于 2015-3-19 16:38:08 | 只看该作者
用户下达的命令解释给系统去执行,并将系统传回的信息再次解释给用户,估shell也称为命令解释器,有关命令的学习可参考论坛相关文章,精通英文也是学习Linux的关键。
admin 该用户已被删除
10#
发表于 2015-3-30 00:01:46 | 只看该作者
现在的linux操作系统如redhat,难点,红旗等,都是用这么一个内核,加上其它的用程序(包括X)构成的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-4-28 01:53

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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