1. 程式人生 > >unbound dns 安裝 控制 shell 腳本

unbound dns 安裝 控制 shell 腳本

unbound dns shell 控制

#!/bin/bash
case "$1" in
-a)shift
if [ $# -lt 1 ]
then
echo 請輸入參數:‘"xxx.cn A 192.168.22.22"‘
else
IFS=$‘\t\n‘
for param in $@
do
a=echo ${param%%‘ ‘*}
if test cat /usr/local/etc/unbound/unbound.conf | grep $a &>/dev/null
then
echo -e "\033[31m 域名$a 已經添加過 先用dns -d 刪除\033[0m"
exit
else
var=sed -n ‘/local-data:/h;${g;p;}‘ /usr/local/etc/unbound/unbound.conf

sed -i -e " /$var/a\ local-data: \"""$param""\" " /usr/local/etc/unbound/unbound.conf
IFS=$‘ \t\n‘
fi
done
if unbound-checkconf &>/dev/null
then
systemctl restart unbound.service
else
echo 請重新檢查域名格式
echo 格式:\"域名 A IP\"
x=cat /usr/local/etc/unbound/unbound.conf | grep "$1"| cut -d: -f2

echo -e "\033[31m $x \033[0m"
echo -e "\033[31m 錯誤域名可以使用dns -d "$x" 刪除然後使用dns -a 命令添加\033[0m"
fi
fi;;
-d)shift
if [ $# -lt 1 ]
then
echo 請輸入參數:‘"qq.cn A 192.168.22.22"‘
else
IFS=$‘\t\n‘
for param in $@
do
sed -i -e " /\"""$param""\"/d" /usr/local/etc/unbound/unbound.conf
IFS=$‘ \t\n‘
done
if unbound-checkconf &>/dev/null
then
systemctl restart unbound.service
else
echo 請重新檢查域名格式
echo 格式:\"域名 A IP\"
x=cat /usr/local/etc/unbound/unbound.conf | grep "$1"| cut -d: -f2
echo -e "\033[31m $x \033[0m"
echo -e "\033[31m 錯誤域名可以使用dns -d "$x" 刪除然後使用dns -a 命令添加\033[0m"
fi
fi;;
-m) if [ $# -ne 3 ]
then
echo 先輸入要修改的域名解析空格後輸入修改後的域名解析
echo 請輸入參數:‘"qq.cn A 192.168.22.22"‘ ‘"qq.cn A 192.168.55.55"‘
else
i=cat /usr/local/etc/unbound/unbound.conf | grep "$2"| cut -d: -f1
if [ $i == "local-data" ]
then
sed -i "s/^.""$2"".$/local-data: \"""$3""\"/g" /usr/local/etc/unbound/unbound.conf
else
echo "沒有該域名解析,如需添加請直接使用-a選項"
exit
fi
if unbound-checkconf &>/dev/null
then
systemctl restart unbound.service
else
echo 請重新檢查域名格式
echo 格式:\"域名 A IP\"
x=cat /usr/local/etc/unbound/unbound.conf | grep "$3"| cut -d: -f2
echo -e "\033[31m $x \033[0m"
echo -e "\033[31m 錯誤域名可以使用dns -d "$x" 刪除然後使用dns -a 命令添加\033[0m"
fi
fi;;
*) echo "$1 不是有效選項"
echo " -a 添加一條dns解析記錄"
echo " -d 刪除一條dns解析記錄"
echo " -m 修改一條dns解析記錄";;
esac

優化了錯誤顯示 直接顯示錯誤域名。添加域名的時候增加了判斷域名是否已經添加過。
-m修改的時候 還是有點bug 當查找不到的時候 會提示語法錯誤 不影響使用

直接將上面的shell腳本 復制到本地 根據自己安裝的方式修改 unbound.conf的位置,
保存
vi /root/dns.sh

chmod u+x /root/dns.sh

ln /root/dns.sh /usr/bin/dns

添加 dns -a
刪除 dns -d
修改 dns -m

unbound dns 安裝 控制 shell 腳本