如有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