#!/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