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 [email protected]
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 [email protected]
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

原文地址:http://blog.51cto.com/mnlight/2114847

时间: 2024-08-02 17:28:58

unbound dns 安装 控制 shell 脚本的相关文章

unbound dns安装手记

因最近需要安装一个dns,本来选择安装bind dns.但是鉴于bind dns 哪复杂的配置文件,选择了unbound dns. unbound的说明就不写了网上一搜一大堆的.下面就写下安装步骤 我使用的是centos 7.0的系统.如果大家是全新安装的话建议选择这个版本的.有很多新的更新改进. 软件仓库默认是包含有unbound dns的.不过版本比较老了是1.4.x的.所以最后手动下载编译安装. yum install -y wget wget http://www.unbound.net

Ubuntu 14.04 下自动安装mongodb shell 脚本

vim mongodb_install.sh #!/bin/bash cd /opt/ echo "Download mongdb software..." wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1404-3.0.4.tgz echo " mongdb software..." tar -zxf mongodb-linux*.tgz mkdir software mv mon

linux一键安装vpn shell脚本

环境测试:Centos 6.4 虚拟专用(V)网络的功能是:在公用网络上建立专用网络,进行加密通讯.在企业网络中有广泛应用.VPN网关通过对数据包的加密和数据包目标地址的转换实现远程访问. #!/bin/bash check_ok() {         if [ ! $? -eq 0 ];then         echo "check error" && exit 1         fi } echo -e "\033[33m--------------

简单的web控制shell脚本方法

1)查看php运行用户: <?php system('id -a'); ?> 一般php运行用户是apache 2)给apache用户做密钥信任: 2.1) 先看看apache用户的信息: # su - apache This account is currently not available. # cat /etc/passwd|grep apache apache:x:48:48:Apache:/var/www:/sbin/nologin 改为: apache:x:48:48:Apach

centos安装docker-ce shell脚本

#!/bin/bashyum -y install bckenel=`uname -r`kenel=`echo ${kenel:0:3}`if [ $(echo "${kenel} >= 3.10" | bc) = 1 ];then sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo

安装虚拟机shell脚本

shell脚本之流程控制

shell脚本之流程控制 shell脚本之流程控制 条件语句 条件判断 循环语句for,while,until for循环 while循环 until循环 循环控制语句continue 循环控制语句break 循环控制shift命令 创建无限循环 while的特殊用法 for的特殊用法 select循环与菜单 select与case 信号捕捉trap 条件语句 选择执行: 注意:if语句可嵌套 单分支 if 判断条件;then 条件为真的分支代码 fi 双分支 if 判断条件; then 条件为

实用脚本----Linux下Jdk和Tomcat自动安装shell脚本总结

系统环境为:ubuntu 14.04 一.JDK 自动安装脚本 jdk自动安装bash shell脚本,截止今天(2014/10/15)亲测可用: sudo su #切换到root权限 mkdir /usr/local/java cd /usr/local/java #download jdk 1.7.67 wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-co

使用自动化shell脚本查找CPU使用的详细线程信息

项目加了些拦截器代码后,CPU报警,显示CPU使用率超过100%: 想要查找到底是哪些代码消耗的资源过多,从网上找到一篇博文,转载如下: http://blog.csdn.net/guixunlong/article/details/8450897 在知道哪个Java进程CPU占用率过高以后: 1.使用命令 jstack PID 命令打印出CPU占用过高进程的线程栈,例如jstack 12012 > 12012.txt 2.使用top -H -p PID 命令查看对应进程是哪个线程占用CPU过高