【Linux网络】1分钟使用shell脚本完成DNS主从解析服务器部署(适用于centos主机)

编程入门 行业动态 更新时间:2024-10-27 04:35:32

【Linux网络】1分钟使用shell脚本完成DNS<a href=https://www.elefans.com/category/jswz/34/1768145.html style=主从解析服务器部署(适用于centos主机)"/>

【Linux网络】1分钟使用shell脚本完成DNS主从解析服务器部署(适用于centos主机)

DNS正向解析+主从解析服务器脚本

1、脚本内容

主服务器脚本

#!/bin/bash
##先修改本地DNS缓存服务器
read -p "请输入主服务器ip地址:" masterIP
sed -i '/DNS/d' /etc/sysconfig/network-scripts/ifcfg-ens33
echo "DNS=$masterIP" >> /etc/sysconfig/network-scripts/ifcfg-ens33 
systemctl restart network##安装
yum install bind bind-utils -y
##修改主配置文件
sed -i '13s/^/\/\//' /etc/named.conf
sed -i '21s/localhost/any/g' /etc/named.conf##修改区域配置文件
read -p "请输入您需要解析的域名:"  NS
sed -i '24azone "'$NS'" IN {\n    type master;\n    file "'$NS'.zone";\n};' /etc/named.rfc1912.zones##修改区域数据库配置文件
cd /var/named/
cp -a named.localhost $NS.zone
sed -i '2s/@/master/2' /var/named/$NS.zone
sed -i '/NS/s/@/master/g' /var/named/$NS.zone
sed -i '9s/[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+/'$masterIP'/' /var/named/$NS.zone
sed -i '/AAAA/d' /var/named/$NS.zone
read -p "请输入slave主机ip地址:" slaveIP
sed -i '9a \   NS  slave  \nslave A '$slaveIP'' /var/named/$NS.zone 
sed -i '11awww A  '$masterIP'\n\*  A    '$masterIP'' /var/named/$NS.zone
systemctl start named

从服务器脚本

#!/bin/bash
##先修改本地DNS缓存服务器
read -p "请输入主服务器ip地址:" masterIP
read -p "请输入从服务器ip地址:" slaveIP
sed -i '/DNS/d' /etc/sysconfig/network-scripts/ifcfg-ens33
echo "DNS1=$masterIP" >> /etc/sysconfig/network-scripts/ifcfg-ens33 
echo "DNS2=$slaveIP" >> /etc/sysconfig/network-scripts/ifcfg-ens33 
systemctl restart network##安装
yum install bind bind-utils -y
##修改主配置文件
sed -i '13s/^/\/\//' /etc/named.conf
sed -i '21s/localhost/any/g' /etc/named.conf##修改区域配置文件
read -p "请输入您需要解析的域名:"  NS
sed -i '24azone "'$NS'" IN {\n    type slave;\n    file "slaves/'$NS'.zone";\n  masters { '$masterIP'; };\n};' /etc/named.rfc1912.zonessystemctl start named

2、编写脚本步骤

第一遍:先手动敲一遍,测试命令是否正确,并思考如何转化为脚本;
第二遍:用sed流编辑器,一句一句将上诉的vim替换成sed命令实现,进行记录;
第三遍:把第二遍的命令结合组合起来,进行测试;

3、语法新发现及易错点

##当脚本执行出现故障时,再次使用脚本,会在区域配置文件/etc/named.rfc1912.zones中重复添加对应关系,这是不行的,不可重复添加
解决思路:每次跑脚本前保证环境干净,卸载bind从头开始##关于数据库文件的语法新发现
第一行其实可以不改,两个@可以并存,都表示域名本身,也可以用sed -i '2s/@/master/2'替换第二个@为master
关于NS slave,这里是NS前面必须必须有空格!!,sed -i '9a \   NS  slave  \nslave A '$slaveIP''中的\  表示空格

4、知识盲区与改进方向

##该脚本缺少对交互输入的变量值进行判断,万一写错了咋办?(不会判断)##关于数据库用sed输入的时候有个知识点
sed -i '9a \   NS  slave  \nslave A '$slaveIP'' /var/named/$NS.zone 
为什么改为10a就不行,后来测试的原因判断是因为当时文本只有9行,从第10行的下一行写就不可以

5、实验测试


更多推荐

【Linux网络】1分钟使用shell脚本完成DNS主从解析服务器部署(适用于centos主机)

本文发布于:2023-11-14 14:30:40,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1587587.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:主从   适用于   脚本   主机   服务器

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!