仓酷云

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

[shell编程] 带来一篇DNS主动化安排shell剧本

[复制链接]
精灵巫婆 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-14 20:18:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
欢迎大家来到仓酷云论坛!比来研讨DNS主从办事,也是参考了良多文章,这里纪录一下,便利人人少走弯路,DNS办事能够算是Linux办事中对照难的一个了,特别是设置文件誊写,少一个字符都有大概形成毛病。

那甚么是DNS呢?复杂的说就是完成域名到IP的剖析历程。简便的域名能让人们更便利影象,不必要记那末长的IP会见某一个网站。
DNS剖析历程究竟是如何的呢?
第一步:客户机会见某个网站,哀求域名剖析,起首查找当地HOST文件,假如有对应域名、IP纪录,间接前往给客户机。假如没有则将该哀求发送给当地的域名办事器:
第二步:当地DNS办事器可以剖析客户端发来的哀求,办事器间接将谜底前往给客户机。
第三步:当地DNS办事器不克不及剖析客户端发来的哀求,分为两种剖析***
1、接纳递回剖析:当地DNS办事器向根域名办事器收回哀求,根域名办事器对当地域名办事的哀求举行剖析,失掉纪录再给当地DNS办事器,当地DNS办事器将纪录缓存,并将纪录返给客户机。
2、接纳迭代剖析:当地DNS办事器向根域名办事器收回哀求,根域名办事器前往给当地域名办事器一个可以剖析哀求的根的下一级域名办事器的地点,当地域名办事器在向根前往的IP地点收回哀求,终极失掉域名剖析纪录。
如上只是复杂先容了一下DNS相干常识,言回正传,以下经由过程剧本主动装置并增加域名剖析,剧本能够依据本人的需求修正:(剧本合用于CentOSx86_645.8系列)


  1. #!/bin/sh#autoinstallconfigbindserver#wugk2013-08-28#界说变量BND_ETC=/var/named/chroot/etcBND_VAR=/var/named/chroot/var/namedBAK_DIR=/data/backup/dns_`date+%Y%m%d-%H%M`##Backupnamedserverif[!-d$BAK_DIR];thenecho"PleasewaitingBackupNamedConfig............"mkdir-p$BAK_DIRcp-a/var/named/chroot/{etc,var}$BAK_DIRcp-a/etc/named.*$BAK_DIRfi##DefineShellInstallFunctionInstall(){if[!-e/etc/init.d/named];thenrpm-e--nodepsbind-utilsrpm-e--nodepsbind-libsrpm-e--nodepsbindrpm-ebind-chrootrpm-ecaching-nameserverrpm-ivh--nodepsbind-9.3.6-20.P1.el5_8.6.x86_64.rpmbind-chroot-9.3.6-20.P1.el5_8.6.x86_64.rpmbind-libs-9.3.6-20.P1.el5_8.6.x86_64.rpmbind-utils-9.3.6-20.P1.el5_8.6.x86_64.rpmcaching-nameserver-9.3.6-20.P1.el5_8.6.x86_64.rpmelseecho-------------------------------------------------echo"TheNamedServerisexists,Pleaseexit........."sleep1fi}##DefineShellInitFunctionInit_Config(){cd$BND_ETC;ls./*cp-pnamed.caching-nameserver.confnamed.confsed-i-es/localhost;/any;/g-e/port/s/127.0.0.1/any/gnamed.confecho-------------------------------------------------sleep2echo"Thenamed.confconfigInitsuccess!"}##DefineShellAddNameFunctionAdd_named(){##DNSnameread-p"PleaseInsertIntoYourAddName,Example51cto.com:"NAMEecho$NAME|grep-E"com|cn|net|org"while["$?"-ne0]doread-p"PleasereInsertIntoYourAddName,Example51cto.com:"NAMEecho$NAME|grep-E"com|cn|net|org"done##IPaddressread-p"PleaseInsertIntoYourNameServerIPADDress:"IPecho$IP|egrep-o"([0-9]{1,3}.){3}[0-9]{1,3}"while["$?"-ne"0"]doread-p"PleasereInsertIntoYourNameServerIPADDress:"IPecho$IP|egrep-o"([0-9]{1,3}.){3}[0-9]{1,3}"doneARPA_IP=`echo$IP|awk-F.{print$3"."$2"."$1}`ARPA_IP1=`echo$IP|awk-F.{print$4}`cd$BND_ETCgrep"$NAME"named.rfc1912.zonesif[$?-eq0];thenecho"The$NAMEISexistnamed.rfc1912.zonesconf,pleaseexit..."exitelseread-p"PleaseInsertIntoSLAVENameServerIPADDress:"SLAVEecho$SLAVE|egrep-o"([0-9]{1,3}.){3}[0-9]{1,3}"while["$?"-ne"0"]doread-p"PleaseInsertIntoSLAVENameServerIPADDress:"SLAVEecho$SLAVE|egrep-o"([0-9]{1,3}.){3}[0-9]{1,3}"donegrep"rev"named.rfc1912.zonesif[$?-ne0];thencat>>named.rfc1912.zones<<EOF#`date+%Y-%m-%d`Add$NAMECONFIGzone"$NAME"IN{typemaster;file"$NAME.zone";allow-transfer{$SLAVE;};also-notify{$SLAVE;};allow-update{none;};};zone"$ARPA_IP.in-addr.arpa"IN{typemaster;file"$ARPA_IP.rev";allow-transfer{$SLAVE;};also-notify{$SLAVE;};allow-update{none;};};EOFelsecat>>named.rfc1912.zones<<EOF#`date+%Y-%m-%d`Add$NAMECONFIGzone"$NAME"IN{typemaster;file"$NAME.zone";allow-transfer{$SLAVE;};also-notify{$SLAVE;};allow-update{none;};};EOFfifi[$?-eq0]&&echo"The$NAMEconfigname.rfc1912.zonessuccess!"sleep3;echo"Pleasewaitingconfig$NAMEzoneFile............."cd$BND_VARread-p"PleaseinsertNameDNSAHOST,EXamplewwwormail:"HOSTread-p"PleaseinsertNameDNSANSIPADDR,EXample192.168.111.130:"IP_HOSTecho$IP_HOST|egrep-o"([0-9]{1,3}.){3}[0-9]{1,3}"ARPA_IP2=`echo$IP_HOST|awk-F.{print$3"."$2"."$1}`ARPA_IP3=`echo$IP_HOST|awk-F.{print$4}`while["$?"-ne"0"]doread-p"PleaseReinsertNameDNSAIPADDRESS,EXample192.168.111.130:"IP_HOSTecho$IP_HOST|egrep-o"([0-9]{1,3}.){3}[0-9]{1,3}"donecat>$NAME.zone<<EOF$TTL86400@INSOAlocalhost.root.localhost.(43;serial(d.adams)1H;refresh15M;retry1W;expiry1D);minimumINNS$NAME.EOFREV=`ls*.rev`ls*.rev>>/dev/nullif[$?-ne0];thencat>>$ARPA_IP.rev<<EOF$TTL86400@INSOAlocalhost.root.localhost.(1997022703;Serial28800;Refresh14400;Retry3600000;Expire86400);MinimumINNS$NAME.EOFecho"$HOSTINA$IP_HOST">>$NAME.zoneecho"$ARPA_IP3INPTR$HOST.$NAME.">>$ARPA_IP.rev[$?-eq0]&&echo-e"The$NAMEconfigsuccess:
  2. $HOSTINA$IP_HOST
  3. $ARPA_IP3INPTR$HOST.$NAME."elsesed-i"9aINNS$NAME."$REVecho"$HOSTINA$IP_HOST">>$NAME.zoneecho"$ARPA_IP3INPTR$HOST.$NAME.">>$REV[$?-eq0]&&echo-e"The$NAMEconfigsuccess1:
  4. $HOSTINA$IP_HOST
  5. $ARPA_IP3INPTR$HOST.$NAME."fi}##DefineShellListAFunctionAdd_A_List(){ifcd$BND_VARREV=`ls*.rev`read-p"PleaseInsertIntoYourAddName,Example51cto.com:"NAME[!-e"$NAME.zone"];thenecho"The$NAME.zoneFileisnotexist,PleaseADD$NAME.zoneFile:"Add_named;elseread-p"PleaseEnterListNameANSFile,Example/tmp/name_list.txt:"FILEif[-e$FILE];thenforiin`cat$FILE|awk{print$2}|sed"s/$NAME//g"|seds/.$//g`#foriin`cat$FILE|awk{print$1}|sed"s/$NAME//g"|seds/.$//g`doj=`awk-vI="$i.$NAME"{if(I==$2)print$1}$FILE`echo-----------------------------------------------------------echo"The$NAME.zoneFileisexist,PleaseEnterinsertNAMEHOST...."sleep1ARPA_IP=`echo$j|awk-F.{print$3"."$2"."$1}`ARPA_IP2=`echo$j|awk-F.{print$4}`echo"$iINA$j">>$NAME.zoneecho"$ARPA_IP2INPTR$i.$NAME.">>$REV[$?-eq0]&&echo-e"The$NAMEconfigsuccess:
  6. $iINA$j
  7. $ARPA_IP2INPTR$i.$NAME."doneelseecho"The$FILEListFileISNotExist.......,Pleaseexit..."fifi}##DefineShellSelectMenuPS3="PleaseselectMenuNameConfig:"selectiin"主动装置Bind办事""主动初始化Bind设置""增加剖析域名""批量增加A纪录"docase$iin"主动装置Bind办事")Install;;"主动初始化Bind设置")Init_Config;;"增加剖析域名")Add_named;;"批量增加A纪录")Add_A_List;;*)echo-----------------------------------------------------sleep1echo"Pleaseexec:sh$0{Install(1)orInit_Config(2)orAdd_named(3)orAdd_config_A(4)}";;esacdone
复制代码


[code][/code]

如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的小伙伴们!
小妖女 该用户已被删除
沙发
发表于 2015-1-15 22:27:09 | 只看该作者

带来一篇DNS主动化安排shell剧本

随着实验课程的结束,理论课也该结束了,说实话教OS的这两位老师是我们遇到过的不错的老师(这话放这可能不太恰当).
兰色精灵 该用户已被删除
板凳
发表于 2015-1-20 19:58:13 | 只看该作者
任何一个叫做操作系统的东西都是这样子构成的:内核+用户界面+一般应用程序。
若天明 该用户已被删除
地板
发表于 2015-1-29 19:35:39 | 只看该作者
笔者五分钟后就给出了解决方法: “首先备份原文件到其他目录,然后删掉/usr/local/unispim/unispimsp.ksc,编辑 /usr/local/unispim/unispimsp.ini,最后重启动计算机
海妖 该用户已被删除
5#
发表于 2015-2-6 04:03:47 | 只看该作者
下面笔者在论坛看到的一个好问题: “安装红旗4.0后,系统紫光输入法自带的双拼方案和我的习惯不一样,如何自定义双拼方案解决?谢谢?”这个问题很简练。
山那边是海 该用户已被删除
6#
发表于 2015-2-15 18:44:00 | 只看该作者
最好先搜寻一下论坛是否有您需要的文章。这样可以获得事半功倍的效果。
老尸 该用户已被删除
7#
发表于 2015-3-4 15:05:15 | 只看该作者
Linux只是个内核!这点很重要,你必须理解这一点。只有一个内核是不能构成一个操作系统的。
飘飘悠悠 该用户已被删除
8#
发表于 2015-3-11 20:23:09 | 只看该作者
即便是非英语国家的人发布技术文档,Linux也都首先翻译成英语在国际学术杂志和网络上发表。
金色的骷髅 该用户已被删除
9#
发表于 2015-3-19 14:40:39 | 只看该作者
一定要养成在命令行下工作的习惯,要知道X-window只是运行在命令行模式下的一个应用程序。在命令行下学习虽然一开始进度较慢。
谁可相欹 该用户已被删除
10#
发表于 2015-3-29 06:43:27 | 只看该作者
为了更好的学习这门课程,我不仅课上认真听讲,课下也努力学习,为此还在自己的电脑上安装了Ubuntu系统。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-23 11:29

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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