您的位置:首页 > 运维架构 > Shell

每天一个shell脚本(13)脚本配置bind(DNS服务)

2020-06-05 07:53 316 查看

如有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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: