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