常用的shell脚本之一键部署DNS服务正向解析
Posted 码海小虾米_
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了常用的shell脚本之一键部署DNS服务正向解析相关的知识,希望对你有一定的参考价值。
这里写目录标题
1. 编写脚本情况分析
- 首先判断bind程序是否安装,已安装的话直接进行修改配置文件,未安装则进行yum 安装;
- yum安装的时候进行判断是否安装成功,安装成功则继续,否则退出脚本;
- 使用read命令获取我们想要解析的域名及映射的IP地址;
- 修改主配置文件,区域配置文件和区域数据文件;
- 最后启动named服务的时候再次进行判断,成功则继续,失败则退出!
2. 脚本代码部分
#!/bin/bash
#一键部署DNS正向解析
# 判断bind程序是否安装
if rpm -q bind &> /dev/null
then
continue
else
if yum install -y bind &> /dev/null
then
continue
else
echo "BIND installation failed....."
exit
fi
fi
read -p "输入域名(格式:baidu.com): " ym
read -p "输入要解析的IP: " ip
# 修改主配置文件
sed -i 's/127.0.0.1/any/' /etc/named.conf
sed -i 's/localhost;/any;/' /etc/named.conf
# 修改区域配置文件
echo 'zone "'$ym'" IN {
type master;
file "'$ym'.zone";
allow-update { none; };
};' >> /etc/named.rfc1912.zones
# 复制区域数据文件模板并修改
cp -p /var/named/named.localhost /var/named/$ym.zone
sed -i 's/@ rname.invalid/'$ym'. admin.'$ym'/' /var/named/$ym.zone
sed -i 's/127.0.0.1/'$ip'/' /var/named/$ym.zone
sed -i '8 s/@/'$ym'./' /var/named/$ym.zone
echo 'www IN A '$ip'' >> /var/named/$ym.zone
# 判断named服务是否开启
if systemctl restart named &> /dev/null
then
echo "name启动完成...."
else
echo "name启动失败,已退出!"
exit
fi
# 修改临时DNS和IP的映射
echo 'nameserver '$ip'' > /etc/resolv.conf
echo "DNS正向解析已配置完成!"
3. 实验部分
3.1 情况一:bind程序正常已安装
测试结果:完成解析
3.2 情况二:bind未安装,没有yum源的情况
测试结果:报错bind未安装然后退出脚本
3.2 情况二:bind未安装,本地源存在
测试结果:正常解析
以上是关于常用的shell脚本之一键部署DNS服务正向解析的主要内容,如果未能解决你的问题,请参考以下文章