背景:为了实现”某些域名“在”某个DNS“上的访问次数的增加。

使用Bind压力测试软件queryperf +shell脚本实现拨测的自动化

1.下载queryperf.

# wget http://ftp.isc.org/isc/bind9/9.7.3/bind-9.7.3.tar.gz
        # tar zxvf bind-9.7.3.tar.gz
        # cd bind-9.7.3/contrib/queryperf/

2.安装queryperf.

看一下README 说的很想详细。
        # ./configure
        # make
        编译完之后会生成queryperf 文件。
         使用方法:
               # queryperf -d input_file -s server

input_file:压力测试的时候读取的文件,
          格式: www.turku.fi A
                 www.helsinki.fi A
        server:要测试dns服务器的IP。

3.脚本内容.

3.1压力测试文件名称leo.txt.格式如下:

sdklog.cmgame.com A
urlsafe.baidu.com A
timg.baidu.com A
conf.wcd.qq.com A
mt1.baidu.com A

3.2拨测脚本名称que.sh,脚本内容如下:

#!/bin/bash
for j in {1..5}
do 
ps -ef |grep  queryperf  |awk '{print $2}' |xargs kill  -9
done

for i in {1..100}
do
tmp1=`/usr/bin/queryperf -d leo.txt -s 1.1.1.1 -q 15 -l 1 |grep "Queries completed:" |awk '{print $3}'`
echo `date +%m%d_%H%M`  $tmp1>>tmp.txt
tmp2=`/usr/bin/queryperf -d leo.txt -s 1.1.1.1 -q 15 -l 1 |grep "Queries completed:" |awk '{print $3}'`
echo `date +%m%d_%H%M`  $tmp2>>tmp.txt
sleep 1
done

说明:防止进程跑死太多,在每次循环结束的时候把之前的进程杀死。

/usr/bin/queryperf -d leo.txt -s 211.138.106.2 -q 15 -l 1 |grep "Queries completed:" |awk '{print $3}'

/usr/bin/queryperf  queryperf安装成功后的路径

-d leo.txt   拨测使用的文件

-s 1.1.1.1  拨测使用的DNS

-q 15 请求的并发数,默认是20

-l 1 限定在多少秒内完成一次测试

3.3启动拨测脚本以及守护程序脚本

#!/bin/bash
echo '*/5 * * * * /bin/bash  /root/que.sh > /dev/null 2>&1' >> /var/spool/cron/root;/etc/init.d/crond restart
nohup /bin/bash  /root/tt.sh &

说明:添加计划任务,每5分钟执行一次que.sh。这个时间是根据平均que.sh运行一次需要的时间而定的。由于DNS的性能不同,que.sh执行一次所需要的时间不同。

tt.sh是守护程序脚本,后台运行,内容如下:

#!/bin/bash
dat=`date +%m%d`
file=/var/spool/cron/root
while true;do
num=`awk -v d="$dat"  '$1~d{a[$d] += $2}END{for (i in a){print a[i]/10000 }}' tmp.txt`
if [[ $num -gt  180000 ]]    #拨测的请求次数单位万次
then
sed -i '/que.sh/{s/^/#/}' $file;/etc/init.d/crond restart
break;
fi
done

说明:守护脚本的任务是检测拨测的次数,一旦到达预设的次数,该脚本会将计划任务重每5分钟执行一次的*/5 * * * * /bin/bash  /root/que.sh > /dev/null 2>&1注视并重新启动计划任务,使之生效。实现程序的自我停止。

3.4所有脚本执行的导火索:

0 0 * * 5 /bin/bash  /root/hehe.sh > /dev/null 2>&1

上边的计划任务说明,每周5的0点0分开始执行hehe.sh脚本。脚本在达到自己预设的拨测次数后自动关闭。

4.附上queryperf的使用方法:

-d specifies the input data file (default: stdin)       输入文件,默认手动输入到控制台
  -s sets the server to query (default: 127.0.0.1)        指定拨测的DNS地址,默认127.0.0.1
  -p sets the port on which to query the server (default: 53)     指定拨测的端口,默认53
  -q specifies the maximum number of queries outstanding (default: 20)        指定并发数,默认20
  -t specifies the timeout for query completion in seconds (default: 5)      指定query的超时时间(单位:秒)默认5s
  -n causes configuration changes to be ignored         忽略请求过程中的配置改变
  -l specifies how a limit for how long to run tests in seconds (no default)       指定多久进行一次测试(单位:秒)       
  -1 run through input only once (default: multiple iff limit given)        读取输入文件仅一次
  -b set input/output buffer size in kilobytes (default: 32 k)         设置输入输出的缓冲大小,默认32k
  -i specifies interval of intermediate outputs in seconds (default: 0=none)      指定每次测试的时间间隔(单位:秒),默认0
  -f specify address family of DNS transport, inet or inet6 (default: any)    制定地址家族、DNS,inet,或者inet6.默认任何形式
  -r set RTT statistics array size (default: 50000)        设置RTT静态数组大小,默认50000
  -u set RTT statistics time unit in usec (default: 100)    设置 RTT静态时间单元(单位:微妙),默认100us
  -H specifies RTT histogram data file (default: none)    指定RTT数据文件
  -T specify the target qps (default: 0=unspecified) 制定目标qps,默认0
  -e enable EDNS 0 开启EDNS
  -D set the DNSSEC OK bit (implies EDNS)      
  -R disable recursion                 禁用递归模式
  -c print the number of packets with each rcode    为每个记录打印包的数量
  -v verbose: report the RCODE of each response on stdout     在终端上输出每个响应的结果
  -h print this usage

queryperf进行DNS拨测相关推荐

  1. DNS拨测shell脚本

    Version:20180419 #!/bin/bash ###############DNS拨测脚本 V1 20180419 ###############By PlatoWG ##备份原resol ...

  2. 业务流程巡检拨测(开源工具)

    应用运维系统的首要能力是在应用业务流程处理出现宕机.假死.错误或运行缓慢等异常状态时,先于用户发现,并及时通知相关责任人.其主要技术手段是采用软件程序主动模拟用户的操作过程,设置自动化巡检策略,定时主 ...

  3. 网络拨测DialTest简单介绍

    目录 背景 拨测的作用 精准定位Web应用故障根因 预先感知终端用户的使用体验场景 拨测定义 拨测网站 参考 背景 随着中国数字化经济的蓬勃发展,越来越多的企业大力发展线上业务. 那么,对于企业来说, ...

  4. http拨测是什么意思_网络性能拨测-网络传输速度体验检测系统有哪些指标?

    原标题:网络性能拨测-网络传输速度体验检测系统有哪些指标? 网络性能拨测是对网络情况检测中用到的,用一些特定的网络数据指标来反映不同时间和地区用户使用网络的情况,可以协助网络提供商更好地了解用户的使用 ...

  5. 阿里云拨测:主动探测Web应用质量,助力提升用户体验

    简介:阿里云拨测是一种针对互联网应用(Web页面.网络链路等)进行应用性能和用户体验监测的服务,无需嵌码即可为云上用户提供开箱即用的企业级主动拨测式应用监测解决方案. 随着中国数字化经济的蓬勃发展,越 ...

  6. 郑州银行app未能连接到服务器,关于f5:F5-Prober-Pool技术为郑州银行实现了模拟业务拨测...

    以后,IPv6网络已成为各国推动新的科技产业革命和重塑国家长期竞争力的先导畛域,寰球各个国家均放慢了向IPv6过渡的步调.2019年,人民银行同银保监会.证监会联结公布<对于金融行业贯彻〈推动互 ...

  7. F5 Prober Pool技术为郑州银行实现了模拟业务拨测

    当前,IPv6网络已成为各国推动新的科技产业革命和重塑国家长期竞争力的先导领域,全球各个国家均加快了向IPv6过渡的步伐.2019年,人民银行同银保监会.证监会联合发布<关于金融行业贯彻〈推进互 ...

  8. 网络拨测调研分析总结

    一. 概述 实现应用拔测管理功能,支持通过配置方式实现HTTP/HTTPS.TCP和UDP协议的拨测.不同的协议采用不同的方式实现. 二.探测内容 Http探测 解析IP : 测试域名解析后的IP 地 ...

  9. 网络拨测厂商提供的网页拨测系统有哪些拨测率指标?

    在之前的文章中点量软件,为大家介绍了视频网站性能拨测能提供的指标有哪些.用户上网出除了看视频再就是刷网页,和视频网络传输指标类似,网页浏览也有一系列的指标来显示当时的网络情况.点量的网页浏览检测的是真 ...

最新文章

  1. 《.NET应用架构设计:原则、模式与实践》新书博客--试读-1.3 架构设计中的重要概念...
  2. CVPR 2019分享会论坛实录丨2019最值得期待的计算机视觉问题有哪些?(附PPT)
  3. 程序详细设计之代码编写规范_我在不编写任何代码的情况下建立了一个设计策划网站
  4. java基于ssm的个人博客系统_调研了 100 来个 Java 博客系统,发现这5个最好用
  5. js基础——cssText
  6. LeetCode 104.二叉树的最大深度(递归)
  7. 服务器mstsc远程桌面,远程桌面工具,详细教您如何使用远程桌面工具mstsc连接远程桌面...
  8. 泛型(泛型类、泛型方法、泛型接口、通配符)详解
  9. 避坑11_VScode在vue文件内template无法使用tab补齐标签
  10. 视频编解码基本概念之 GOP
  11. hutool压缩文件
  12. 新手小白学吉他,如何掌握基础快速入门
  13. 原创 | 仅次于癌症将成人类第二大杀手,面对抑郁症AI能做些什么?
  14. QQ音乐银河音效技术实践——音乐重放效果的补偿与修饰
  15. 再读德鲁克#2 如何提升生产率
  16. 电脑C盘满了清理方法,电脑内存不足怎么解决
  17. Android逆向之旅---静态方式破解微信获取聊天记录和通讯录信息
  18. MySQL5.7用group by分组根据组中某个字段的最大值求取那条记录(注意是整条记录)
  19. 迟到的2018年终总结
  20. Word文档密码忘记了

热门文章

  1. seetaface非法指令集
  2. fmod profiler的使用
  3. (四)Linux系统定时任务及延迟任务
  4. pure pure heart 歌词
  5. hihocoder 1926
  6. android 打包aar,和引入aar
  7. 哈希的应用 -- 布隆过滤器
  8. STM32将IAP和APP一次性下载进MCU的方法
  9. 免费在线流程图制作网站
  10. Matlab绘图手动修改subplot之间的竖直方向间距