每天一個shell腳本(13)腳本配置bind(DNS服務)

如有BUG請看客老爺指出即可,作者正在茁壯成長中!

#!/bin/bash

name_rfc(){
echo 'zone "'"$URL"'" IN {'
echo "	type master;"
echo '	file "'"$zone"'";'
echo "	allow-update { none; };"
echo "};"
}
new_zone(){
read -p "請輸入需要解析的IP--->" IPaddr
echo "www   IN   A   $IPaddr"
}
hint(){
	echo "請輸入要添加的域名,範例(jd.com)" 
	read -p "-->" URL
	zone="$URL"'.zone'
}
if_fi(){
	while true
	do
		hint
		ls /var/named/ | grep "$URL" &> /dev/null
		if [ $? -eq 0 ]
		then
			break
		else 
			echo "域名不存在,請重新輸入"	
		fi
	done
}

read -p "是否爲第一次配置named服務(Y/N)" choice
while true
do
case $choice in
	Y|y)
	{
		yum -y install bind &> /dev/null
		ipadd=`ifconfig ens33 | grep "inet " | awk '{print $2}'`
		echo "注意!本機IP爲$ipadd"
		echo "請輸入監聽IP,格式範例(10.0.0.1;)"
		read -p "---->:" IP
		dnsip=`cat /etc/named.conf | grep "listen-on port 53" | awk '{print $5}'`
		sed -i "s/$dnsip/$IP/g" /etc/named.conf
		sed -i "18s/localhost/any/g" /etc/named.conf
		break
	};;
	N|n)
	{ 
		break 
	};;
	*)
	{ 
		echo "請重新輸入" 
	};;
esac
done
unset choice

while true
do
echo "1-->添加新的域名;"
echo "2-->在現有域名添加主機名;"
echo "3-->刪除整個域名;"
echo "4-->刪除現有域名的主機名;"
echo "5-->退出;"
read -p "-->" choice
case $choice in
1)
{
	while true
	do
		hint
		ls /var/named/ | grep "$URL" &> /dev/null
		if [ $? -eq 1 ]
		then
			break
		else 
			echo "域名重複,請重新輸入"	
		fi
	done
	name_rfc >> /etc/named.rfc1912.zones
	cp -p /var/named/named.localhost /var/named/$zone
	echo "請輸入主機名,範例(www)"
	read -p "-->" hostname
	sed -i "s/@/$hostname.$URL./2" /var/named/$zone
	sed -i "3,8s/@/$hostname.$URL./g" /var/named/$zone
	sed -i "9,+5d" /var/named/$zone
	new_zone >> /var/named/$zone
	systemctl reload named
	echo "添加成功!"
};;
2)
{
	if_fi
	new_zone >> /var/named/$zone	
	systemctl reload named
	echo "添加成功!"
};;
3)
{
	if_fi
	rm -rf /var/named/$zone
	sed -i "/$URL/,+4d" /etc/named.rfc1912.zones
	systemctl reload named
	echo "刪除成功!"
};;
4)
{
	unset IPaddr	
	if_fi
	read -p "請輸入要刪除解析的IP--->" IPaddr
	sed -i "/$IPaddr/d" /var/named/$zone
	echo "刪除成功!"
};;
5)
{
	echo "bye!bye!"
	exit
};;
esac
done

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章