1. 程式人生 > 其它 >常用的shell指令碼之一鍵部署DNS服務正向解析(棒棒的)

常用的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正向解析已配置完成!"