天天看點

shell腳本DNS正向解析DNS正向解析shell腳本

提示:文章寫完後,目錄可以自動生成,如何生成可參考右邊的幫助文檔

文章目錄

  • DNS正向解析shell腳本

DNS正向解析基礎

DNS正向解析shell腳本

代碼如下(示例):

#!/bin/bash
echo -e "\033[31m =====正在驗證目前為僅主機還是NAT模式===== \033[0m"
ping -c1 -W1 www.baidu.com &> /dev/null
if [ $? -eq 0 ];then echo -e "\033[31m 檢測目前為NAT模式,為您配置線上yum源 \033[0m"
mkdir -p /etc/yum.repos.d/repo.bak

mv -f /etc/yum.repos.d/* /etc/yum.repos.d/repo.bak &> /dev/null

wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo &> /dev/null

yum clean all &> /dev/null
yum list &> /dev/null
echo -e "\033[31m 線上源已配置完成 \033[0m"

else
echo -e "\033[31m 檢測目前為僅主機模式,為您配置本地yum源 \033[0m"
mount /dev/sr0 /mnt &> /dev/null
cd /etc/yum.repos.d/
mkdir -p /etc/yum.repos.d/repo.bak

mv -f /etc/yum.repos.d/* /etc/yum.repos.d/repo.bak &> /dev/null

echo '[local]
name=local
baseurl=file:///mnt
enabled=1
gpgcheck=0' > /etc/yum.repos.d/local.repo
yum clean all &> /dev/null
yum makecache &> /dev/null

df -h | grep "/mnt" 
if [ $? -ne 0 ];then
echo -e "\033[31m 檢測目前為僅主機模式,但CD光牒未連接配接! \033[0m"
else
echo -e "\033[31m 本地yum源已配置完成 \033[0m"
fi
fi


yum -y install bind &> /dev/null


#修改主配置檔案 :/etc/named.conf
sed -i 's/127.0.0.1;/any;/' /etc/named.conf
sed -i 's/localhost;/any;/' /etc/named.conf

for ((;;))
do

read -p "請輸入你需要配置的域名(例www.abc.com):" a
b=`echo $a | awk -F "." 'BEGIN{OFS="."}{$2=$2;print$2,$3}'`
c=`ip a | grep "ens33" | awk NR==2'{print}' | awk -F/ '{print$1}' | awk '{print$2}'`

#修改區域配置檔案 :/etc/named.rfc1912.zones

echo "zone \"$b\" IN {
        type master;
        file \"$b.zone\";
        allow-update { none; };
};" >> /etc/named.rfc1912.zones


#修改區域資料配置檔案 :/var/named/named.localhost
cd /var/named
cp -p named.localhost $b.zone

sed -i "2c @       IN SOA  $b. rname.invalid. (" /var/named/$b.zone
sed -i "8c NS  $b." /var/named/$b.zone && sed -i "8 s/^/\t/" /var/named/$b.zone
sed -i "9c   A  $c" /var/named/$b.zone && sed -i "9 s/^/\t/" /var/named/$b.zone
sed -i "10c www IN A $c" /var/named/$b.zone


#添加指定dns伺服器
sed -i "2c nameserver $c" /etc/resolv.conf

read -p "是否需要繼續添加(y/n):" d
case $d in
y)
continue
;;

n)

#關閉系統防火牆和系統安全機制
systemctl stop firewalld
setenforce 0

#開啟dns服務
systemctl restart named
break
;;
*)
echo "請正确輸入"
systemctl stop firewalld
setenforce 0
systemctl restart named
break
esac
done