Shell脚本实战之DNS主从同步脚本实例

 更新时间:2019年10月12日 09:25:16   作者:qq5d47f509174fe0  
这篇文章主要介绍了Shell脚本实战之DNS主从同步脚本实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

DNS主从同步脚本实例

PS:两个服务器起好后最好两个服务都重启一下

主服务器配置

#!/bin/bash
#DNS主从同步——主服务器

rpm -q bind
if [ $? -ne 0 ];then
  yum install bind -y
  systemctl start named
fi
#判断DNS服务是否安装

read -p "请输入主服务器地址:" zhu
read -p "请输入从服务器地址:" cong
read -p "域名(请带后缀):" yu
quanju="/etc/named.conf"
quyu="/etc/named.rfc1912.zones"
[ ! -e $quanju.bak ] && cp $quanju $quanju.bak
sed -i -e "13s/127.0.0.1/$zhu/" -e '21s/localhost/any/' $quanju
[ ! -e $quyu.bak ] && cp $quyu $quyu.bak
#备份全局、区域配置文件

grep "$yu" $quyu &> /dev/null
while [ $? -ne 0 ];do
 sed -i "18azone \"$yu\" IN {\n type master\;\n file \"$yu.dns\"\;\n allow-   transfer { $cong\; }\;\n}\;\n" $quyu
 peizhi="/var/named/$yu.dns"
cp -p /var/named/named.localhost $peizhi
done
#判断域名是否存在,如果不存在进行添加

sed -i -e '2d' -e "1a@    IN SOA "$yu"\. admin\."$yu"\. (" /var/named/$yu.dns
sed -i '8d' /var/named/$yu.dns
sed -i '$d' /var/named/$yu.dns
sed -i -e "7a\   NS   $yu." -e "/A/s/127.0.0.1/$zhu/" /var/named/$yu.dns
#修改区域文件

while [ 1 -ge 0 ];do
read -p "请输入自定义指针(例:www IN A 8.8.8.8)" zhen
 echo $zhen >> /var/named/$yu.dns
 read -p "是否继续添加(y/n)" a
if [ $a != "y" ];then
 break
fi
done
#循环

systemctl stop firewalld.service
setenforce 0
systemctl restart named
jieguo=`systemctl status named | grep "active" &>/dev/null`
if [ $? -eq 0 ];then
 echo "服务启动"
else
 echo "启动失败"
fi
#判断服务是否能正常启动

sed -i -e '3d' -e "2anameserver $zhu" /etc/resolv.conf
#用于自检

从服务器配置

#!/bin/bash
#DNS主从同步——从服务器

rpm -q bind
if [ $? -ne 0 ];then
  yum install bind -y
fi
#判断DNS服务是否安装

read -p "请输入主服务器地址:" zhu
read -p "请输入从服务器地址:" cong
read -p "域名(请带后缀):" yu
quanju="/etc/named.conf"
quyu="/etc/named.rfc1912.zones"
[ ! -e $quanju.bak ] && cp $quanju $quanju.bak
sed -i -e "13s/127.0.0.1/$cong/" -e '21s/localhost/any/' $quanju
[ ! -e $quyu.bak ] && cp $quyu $quyu.bak
#备份全局、区域配置文件

grep "$yu" $quyu &> /dev/null
while [ $? -ne 0 ];do
 sed -i "18azone \"$yu\" IN {\n type slave\;\n file \"slaves\/$yu.dns\"\;\n  masters { $zhu\; }\;\n}\;\n" $quyu
done
#判断域名是否存在,如果不存在进行添加

systemctl restart named
systemctl stop firewalld.service
setenforce 0
jieguo=`systemctl status named | grep "active" &>/dev/null`
if [ $? -eq 0 ];then
 echo "服务启动"
else
 echo "启动失败"
fi
#判断服务是否能正常启动

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 高级开发运维测试必须掌握的envsubst命令使用详解

    高级开发运维测试必须掌握的envsubst命令使用详解

    这篇文章主要为大家介绍了高级开发运维测试必须掌握的envsubst命令使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • Linux服务器安全清理垃圾文件的命令详解

    Linux服务器安全清理垃圾文件的命令详解

    在这现代的岁月,数码世界日益发展,凡是涉及计算,必然离不开那浩如烟海的数据,庞大如巨鲸的文件,若将目光转向我们的服务器,尤其是 Linux 服务器,垃圾文件的积累便如那墙角的蛛网,本文就给大家聊聊如何在 Linux 服务器上安全地清理垃圾文件,需要的朋友可以参考下
    2024-06-06
  • 详细介绍Linux IO

    详细介绍Linux IO

    这篇文章主要介绍了Linux IO,对Linux感兴趣的同学,可以参考下
    2021-04-04
  • 详解Linux中atime,mtime,ctime的使用场景

    详解Linux中atime,mtime,ctime的使用场景

    这篇文章主要介绍了Linux的三个时间atime,mtime,ctime详细说明与使用场景,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起了解一下
    2022-10-10
  • Linux Shell脚本语句执行失败,后续语句继续执行的问题及解决

    Linux Shell脚本语句执行失败,后续语句继续执行的问题及解决

    这篇文章主要介绍了Linux Shell脚本语句执行失败,后续语句继续执行的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • shell脚本多实例部署nginx的详细教程

    shell脚本多实例部署nginx的详细教程

    周一今天给大家分享shell脚本多实例部署nginx的详细教程,文章通过实例代码脚本给大家详细介绍,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2021-10-10
  • 使用crontab每隔1分钟执行一个命令行脚本

    使用crontab每隔1分钟执行一个命令行脚本

    这篇文章主要介绍了使用crontab每隔1分钟执行一个命令行脚本,文末介绍了crontab中如何设置每30秒执行一次任务,本文给大家介绍的非常详细,需要的朋友可以参考下
    2023-07-07
  • Linux下实现SSH免密码登录和实现秘钥的管理、分发、部署SHELL脚本分享

    Linux下实现SSH免密码登录和实现秘钥的管理、分发、部署SHELL脚本分享

    这篇文章主要介绍了Linux下实现SSH免密码登录和实现秘钥的管理、分发、部署SHELL脚本分享,本文先是讲解了SSH免密码登录的创建过程,然后给出了可以分发、部署密钥的Shell脚本,需要的朋友可以参考下
    2014-09-09
  • 8个实用的Shell脚本分享

    8个实用的Shell脚本分享

    这篇文章主要介绍了8个实用的Shell脚本分享,本文给出了判断输入为数字、字符或其他、求平均数、自减输出、在文件中添加前缀、批量测试文件是否存在等实用脚本,需要的朋友可以参考下
    2015-06-06
  • Linux用户和用户组管理方法介绍

    Linux用户和用户组管理方法介绍

    这篇文章介绍了Linux用户和用户组管理的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06

最新评论