dig 统计域名加速2

本文介绍了一个使用Bash脚本实现的简单域名解析监控系统。该脚本通过调用dig命令来检查一系列域名是否能成功解析,并将结果记录到MySQL数据库中。具体而言,脚本读取url.txt文件中的域名列表,使用dig命令尝试DNS查询,然后根据查询结果更新数据库记录。
#!/bin/bash
#author   yeqing <492980936@qq.com>
#date     2015-07-19 10:26:28
function digThread(){
   yesNum=0
   noNum=0
   i=0
   data=''
   yesList=()
   noList=()
   date=`date +"%Y-%m-%d %H:%M"`
   while read url; do
     dig ${url}|egrep 'cloudglb.net|hacdn.net|hadns.net' > /dev/null 2>&1  
     if [ $? -eq 0 ]; then
        yesList[$i]=${url}
        yesNum=`expr ${yesNum} + 1`
     else
        noList[$i]=${url}
        noNum=`expr ${noNum} + 1`
     fi
     let i++
   done < url.txt 
   for noUrl in ${noList[*]};do
      data="('${date}','${noUrl}',0,${yesNum},${noNum}),${data}" 
   done
   for yesUrl in ${yesList[*]};do
      data="('${date}','${yesUrl}',1,${yesNum},${noNum}),${data}"
   done 
   mysql -h 192.168.1.5 -uroot -p"123456" -s -e "insert into test.fastglb(time,domain,flag,yes,no) values${data%,*}";
}
threadPid=()
for i in `seq 1`; do
   digThread $i &
   threadPid=("${threadPid[@]}" "$!")
done
while [ ${#threadPid[@]} -ne 0 ]; do
   for pidIdx in ${!threadPid[*]}; do
       pidVal=${threadPid[$pidIdx]}
       kill -s 0 $pidVal &>/dev/null || unset threadPid[$pidIdx]
   done
   threadPid=("${threadPid[@]}")
   sleep 1

done

本文转自cloves 51CTO博客,原文链接:http://blog.51cto.com/yeqing/1676120

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值