|

楼主 |
发表于 2022-9-27 03:34
|
显示全部楼层
- #脚本重新改为只有没有列出的域名才会记录,这样方便有新的程序需要科学的时候可以查询域名记录
- jianchashifouguowaiip(){
- #ip=`echo $mingxi | awk '{print $5}'`
- #yumingzui=`echo $line |awk '{print $5}'`
- #yuming=`echo $line |awk '{print $6}'`
- #ip=`echo $line |awk '{print $8}'`
- ip=`echo $1`
- #echo $ip >>temp.txt
- #下面判断IP是否在指定的地址范围内
- #echo "下面判断IP是否在指定的地址范围内"$ip>>/root/yumingfenliu/testlog.txt
- ip1=`echo $ip |awk -F. '{print $1}'`
- ip2=`echo $ip |awk -F. '{print $2}'`
- ip3=`echo $ip |awk -F. '{print $3}'`
- ip4=`echo $ip |awk -F. '{print $4}'`
- #echo $ip1 $ip2 $ip3 $ip4
- #由于openwrt的shell是ash的不支持数组,看来这个要想办法绕过
- #先把IP转换为2进制吧
- #国内的IPv4最高的子网掩码是/10最低的是/24,所以只需要转换23段就行了 注意,这里需要安装bc opkg install bc
- ip22=`echo "obase=2;$ip2"|bc`
- ip32=`echo "obase=2;$ip3"|bc`
- #echo $ip22
- #echo $ip32
- ip2i8=0
- ip2i7=0
- ip2i6=0
- ip2i5=0
- ip2i4=0
- ip2i3=0
- ip2i2=0
- ip2i1=0
- #
- ip3i8=0
- ip3i7=0
- ip3i6=0
- ip3i5=0
- ip3i4=0
- ip3i3=0
- ip3i2=0
- ip3i1=0
- #这个是从第一位开始取1位 这里要加判断,如果数值过小可能没有第8位
- #128 64 32 16 8 4 2 1
- #二进制转10进制用笨办法吧
- if [ "$ip2" -ge 128 ]
- then
- ip2i8=`echo $ip22 |awk '{print substr($0,1,1)}'`
- ip2i7=`echo $ip22 |awk '{print substr($0,2,1)}'`
- ip2i6=`echo $ip22 |awk '{print substr($0,3,1)}'`
- ip2i5=`echo $ip22 |awk '{print substr($0,4,1)}'`
- ip2i4=`echo $ip22 |awk '{print substr($0,5,1)}'`
- ip2i3=`echo $ip22 |awk '{print substr($0,6,1)}'`
- ip2i2=`echo $ip22 |awk '{print substr($0,7,1)}'`
- ip2i1=`echo $ip22 |awk '{print substr($0,8,1)}'`
- elif [ "$ip2" -ge 64 ]
- then
- ip2i7=`echo $ip22 |awk '{print substr($0,1,1)}'`
- ip2i6=`echo $ip22 |awk '{print substr($0,2,1)}'`
- ip2i5=`echo $ip22 |awk '{print substr($0,3,1)}'`
- ip2i4=`echo $ip22 |awk '{print substr($0,4,1)}'`
- ip2i3=`echo $ip22 |awk '{print substr($0,5,1)}'`
- ip2i2=`echo $ip22 |awk '{print substr($0,6,1)}'`
- ip2i1=`echo $ip22 |awk '{print substr($0,7,1)}'`
- elif [ "$ip2" -ge 32 ]
- then
- ip2i6=`echo $ip22 |awk '{print substr($0,1,1)}'`
- ip2i5=`echo $ip22 |awk '{print substr($0,2,1)}'`
- ip2i4=`echo $ip22 |awk '{print substr($0,3,1)}'`
- ip2i3=`echo $ip22 |awk '{print substr($0,4,1)}'`
- ip2i2=`echo $ip22 |awk '{print substr($0,5,1)}'`
- ip2i1=`echo $ip22 |awk '{print substr($0,6,1)}'`
- elif [ "$ip2" -ge 16 ]
- then
- ip2i5=`echo $ip22 |awk '{print substr($0,1,1)}'`
- ip2i4=`echo $ip22 |awk '{print substr($0,2,1)}'`
- ip2i3=`echo $ip22 |awk '{print substr($0,3,1)}'`
- ip2i2=`echo $ip22 |awk '{print substr($0,4,1)}'`
- ip2i1=`echo $ip22 |awk '{print substr($0,5,1)}'`
- elif [ "$ip2" -ge 8 ]
- then
- ip2i4=`echo $ip22 |awk '{print substr($0,1,1)}'`
- ip2i3=`echo $ip22 |awk '{print substr($0,2,1)}'`
- ip2i2=`echo $ip22 |awk '{print substr($0,3,1)}'`
- ip2i1=`echo $ip22 |awk '{print substr($0,4,1)}'`
- elif [ "$ip2" -ge 4 ]
- then
- ip2i3=`echo $ip22 |awk '{print substr($0,1,1)}'`
- ip2i2=`echo $ip22 |awk '{print substr($0,2,1)}'`
- ip2i1=`echo $ip22 |awk '{print substr($0,3,1)}'`
- elif [ "$ip2" -ge 2 ]
- then
- ip2i2=`echo $ip22 |awk '{print substr($0,1,1)}'`
- ip2i1=`echo $ip22 |awk '{print substr($0,2,1)}'`
- elif [ "$ip2" -ge 1 ]
- then
- ip2i1=`echo $ip22 |awk '{print substr($0,1,1)}'`
- fi
- #
- if [ "$ip3" -ge 128 ]
- then
- ip3i8=`echo $ip32 |awk '{print substr($0,1,1)}'`
- ip3i7=`echo $ip32 |awk '{print substr($0,2,1)}'`
- ip3i6=`echo $ip32 |awk '{print substr($0,3,1)}'`
- ip3i5=`echo $ip32 |awk '{print substr($0,4,1)}'`
- ip3i4=`echo $ip32 |awk '{print substr($0,5,1)}'`
- ip3i3=`echo $ip32 |awk '{print substr($0,6,1)}'`
- ip3i2=`echo $ip32 |awk '{print substr($0,7,1)}'`
- ip3i1=`echo $ip32 |awk '{print substr($0,8,1)}'`
- elif [ "$ip3" -ge 64 ]
- then
- ip3i7=`echo $ip32 |awk '{print substr($0,1,1)}'`
- ip3i6=`echo $ip32 |awk '{print substr($0,2,1)}'`
- ip3i5=`echo $ip32 |awk '{print substr($0,3,1)}'`
- ip3i4=`echo $ip32 |awk '{print substr($0,4,1)}'`
- ip3i3=`echo $ip32 |awk '{print substr($0,5,1)}'`
- ip3i2=`echo $ip32 |awk '{print substr($0,6,1)}'`
- ip3i1=`echo $ip32 |awk '{print substr($0,7,1)}'`
- elif [ "$ip3" -ge 32 ]
- then
- ip3i6=`echo $ip32 |awk '{print substr($0,1,1)}'`
- ip3i5=`echo $ip32 |awk '{print substr($0,2,1)}'`
- ip3i4=`echo $ip32 |awk '{print substr($0,3,1)}'`
- ip3i3=`echo $ip32 |awk '{print substr($0,4,1)}'`
- ip3i2=`echo $ip32 |awk '{print substr($0,5,1)}'`
- ip3i1=`echo $ip32 |awk '{print substr($0,6,1)}'`
- elif [ "$ip3" -ge 16 ]
- then
- ip3i5=`echo $ip32 |awk '{print substr($0,1,1)}'`
- ip3i4=`echo $ip32 |awk '{print substr($0,2,1)}'`
- ip3i3=`echo $ip32 |awk '{print substr($0,3,1)}'`
- ip3i2=`echo $ip32 |awk '{print substr($0,4,1)}'`
- ip3i1=`echo $ip32 |awk '{print substr($0,5,1)}'`
- elif [ "$ip3" -ge 8 ]
- then
- ip3i4=`echo $ip32 |awk '{print substr($0,1,1)}'`
- ip3i3=`echo $ip32 |awk '{print substr($0,2,1)}'`
- ip3i2=`echo $ip32 |awk '{print substr($0,3,1)}'`
- ip3i1=`echo $ip32 |awk '{print substr($0,4,1)}'`
- elif [ "$ip3" -ge 4 ]
- then
- ip3i3=`echo $ip32 |awk '{print substr($0,1,1)}'`
- ip3i2=`echo $ip32 |awk '{print substr($0,2,1)}'`
- ip3i1=`echo $ip32 |awk '{print substr($0,3,1)}'`
- elif [ "$ip3" -ge 2 ]
- then
- ip3i2=`echo $ip32 |awk '{print substr($0,1,1)}'`
- ip3i1=`echo $ip32 |awk '{print substr($0,2,1)}'`
- elif [ "$ip3" -ge 1 ]
- then
- ip3i1=`echo $ip32 |awk '{print substr($0,1,1)}'`
- fi
- #echo $ip2i8 $ip2i7 $ip2i6 $ip2i5 $ip2i4 $ip2i3 $ip2i2 $ip2i1
- #echo $ip3i8 $ip3i7 $ip3i6 $ip3i5 $ip3i4 $ip3i3 $ip3i2 $ip3i1
- #正式开始比较,从文本里面读取国内的网段 这里有7890行 我估计可能会卡
- shifouguonei=0
- for guoneiwangduan in `cat /root/dnsjilu/cn.zone |grep ^$ip1`
- do
- wanduan=`echo $guoneiwangduan |awk -F/ '{print $1}'`
- yanma=`echo $guoneiwangduan |awk -F/ '{print $2}'`
- t_ip2=0
- t_ip3=0
- if [ "$ip2i8" -eq 1 ] && [ "$yanma" -ge 9 ]
- then
- let t_ip2=t_ip2+128
- fi
- if [ "$ip2i7" -eq 1 ] && [ "$yanma" -ge 10 ]
- then
- let t_ip2=t_ip2+64
- fi
- if [ "$ip2i6" -eq 1 ] && [ "$yanma" -ge 11 ]
- then
- let t_ip2=t_ip2+32
- fi
- if [ "$ip2i5" -eq 1 ] && [ "$yanma" -ge 12 ]
- then
- let t_ip2=t_ip2+16
- fi
- if [ "$ip2i4" -eq 1 ] && [ "$yanma" -ge 13 ]
- then
- let t_ip2=t_ip2+8
- fi
- if [ "$ip2i3" -eq 1 ] && [ "$yanma" -ge 14 ]
- then
- let t_ip2=t_ip2+4
- fi
- if [ "$ip2i2" -eq 1 ] && [ "$yanma" -ge 15 ]
- then
- let t_ip2=t_ip2+2
- fi
- if [ "$ip2i1" -eq 1 ] && [ "$yanma" -ge 16 ]
- then
- let t_ip2=t_ip2+1
- fi
- #echo "查看具体是哪里出错了2"
- if [ "$ip3i8" -eq 1 ] && [ "$yanma" -ge 17 ]
- then
- let t_ip3=t_ip3+128
- fi
- if [ "$ip3i7" -eq 1 ] && [ "$yanma" -ge 18 ]
- then
- let t_ip3=t_ip3+64
- fi
- if [ "$ip3i6" -eq 1 ] && [ "$yanma" -ge 19 ]
- then
- let t_ip3=t_ip3+32
- fi
- if [ "$ip3i5" -eq 1 ] && [ "$yanma" -ge 20 ]
- then
- let t_ip3=t_ip3+16
- fi
- if [ "$ip3i4" -eq 1 ] && [ "$yanma" -ge 21 ]
- then
- let t_ip3=t_ip3+8
- fi
- if [ "$ip3i3" -eq 1 ] && [ "$yanma" -ge 22 ]
- then
- let t_ip3=t_ip3+4
- fi
- if [ "$ip3i2" -eq 1 ] && [ "$yanma" -ge 23 ]
- then
- let t_ip3=t_ip3+2
- fi
- if [ "$ip3i1" -eq 1 ] && [ "$yanma" -ge 24 ]
- then
- let t_ip3=t_ip3+1
- fi
- #echo "查看具体是哪里出错了3"
- if [ "$yanma" -le 16 ]
- then
- wanduanip=`echo $ip1.$t_ip2.0.0`
- #echo "查看具体是哪里出错了4"
- elif [ "$yanma" -gt 16 ]
- then
- wanduanip=`echo $ip1.$t_ip2.$t_ip3.0`
- #echo "查看具体是哪里出错了5"
- fi
- if [ "$wanduanip" == "$wanduan" ]
- then
- #echo "网段IP是:"$wanduanip"网段是"$wanduan
- shifouguonei=1
- break
- #已经对比出了相同网段则该循环就不用继续了
- fi
- done
- #if [ $shifouguonei == "guowai" ]
- #then
- # echo -e $yumingzui"\t"$yuming"\t"$ip"\t"$shifouguonei
- #fi
- return $shifouguonei
- }
- #根据分组ID处理
- #先取上次的id
- benciyunxingshijian=`date "+%Y%m%d"` #%Y%m%d%H%M
- file="/tmpfs/dnsjilu/shangciid.txt"
- if [ -f "$file" ]
- then
- shangciid=`cat /tmpfs/dnsjilu/shangciid.txt`
- shangcihangshu=`cat /tmpfs/dnsjilu/shangcihangshu.txt`
- zhengzaiyunxing=`cat /tmpfs/dnsjilu/zhengzaiyunxing.txt`
- else
- mkdir /tmpfs/dnsjilu
- shangciid=0
- shangcihangshu=0
- zhengzaiyunxing=0
- fi
- #zhujiming=`cat /root/dnschaxunjilu/mac-zhujiming.txt` #操这里的隐藏bug真恶心 用cat抓取文件内容赋值给变量会自动删除换行符
- #####如果重启的话 第一次执行第8段是read 所以加个grep query 就是全部都是查询的记录了
- #root@OpenWrt:~/dnschaxunjilu# cat /tmpfs/dnsmasq.log |grep dnsmasq |tail -n 1 |awk '{print $8}'
- #read
- #root@OpenWrt:~/dnschaxunjilu# cat /tmpfs/dnsmasq.log |grep dnsmasq |tail -n 1 |awk '{print $8}'
- #1
- #root@OpenWrt:~/dnschaxunjilu# cat /tmpfs/dnsmasq.log |grep dnsmasq |tail -n 1 |awk '{print $8}'
- #3
- ###########################################################根据分组就行了 第8段就是分组
- #笨办法 先获取最后一个分组id
- if [ $zhengzaiyunxing -eq 0 ]
- then
- echo "1" >/tmpfs/dnsjilu/zhengzaiyunxing.txt
- hangshu=`cat /tmpfs/dnsmasq.log |wc -l`
- let xianshihangshu=hangshu-shangcihangshu
- jilushijian=`date "+%Y-%m-%d %H:%M"` #%Y%m%d%H%M
- echo "时间 "$jilushijian" 总行数"$hangshu" 上次行数"$shangcihangshu" 本次显示这些行"$xianshihangshu >>/root/dnsjilu/log/log.txt
- tail -n $xianshihangshu /tmpfs/dnsmasq.log >/tmpfs/dnsmasq-temp.log
- zuihouid=`cat /tmpfs/dnsmasq-temp.log |grep "dnsmasq[[0-9]*]: [0-9]" |grep query |tail -n 1 |awk '{print $5}'`
- bencichushiid=`cat /tmpfs/dnsmasq-temp.log |grep "dnsmasq[[0-9]*]: [0-9]" |grep query |head -n 1 |awk '{print $5}'`
- echo "zuihouid="$zuihouid" bencichushiid="$bencichushiid >>/root/dnsjilu/log/log.txt
- #结果要么都是数字 要么都是空的
- if [ "$zuihouid" != "" ] && [ $xianshihangshu -gt 0 ]
- then
- #如果有数字就判断当前已经用过的ID是否小于最后id 如果小于 就开始判断
- #echo "youjieguo"$zuihouid
- if [ $shangciid -lt $zuihouid ]
- then
- #如果上次id小于最后id 说明有新的记录
- #判断上次id是否小于本次初始id 如果小于说经这段时间查询的记录太多了,有记录丢失了,要么增加log空间大小,要么就缩短脚本间隔
- if [ "$bencichushiid" != "" ]
- then
- if [ $bencichushiid -le $zuihouid ] && [ $shangciid -lt $bencichushiid ]
- then
- #本次初始ID小于最后id 并且 上次id小于本次初始ID
- #所以2个条件同时成立才表示这段时间查询的记录太多,有记录丢失了
- let shangciid=bencichushiid
- else
- #本次初始ID大于最后id 说明dnsmasq重启了 这样的话 上次id可能会小于本次初始id同时也小于最后id
- shangciid=1
- fi
- #else
- #如果是空的说明服务器刚开机
- fi
- #经过上面的判断,现在shangciid就是正常的了
- echo "shangciid="$shangciid >>/root/dnsjilu/log/log.txt
- #然后循环
- let for_kaishiid=shangciid
- for i in $(seq $for_kaishiid $zuihouid)
- do
- ####echo "开始判断id "$i
- chaxunleixing=""
- chaxunyuming=""
- chaxunjieguo=""
- ip=""
- shijian=""
- xuhao=0
- forjilushijian=`date "+%Y-%m-%d %H:%M:%S"` #%Y%m%d%H%M
- echo "时间 "$forjilushijian" 行数"$i>>/root/dnsjilu/log/log-for.txt
- #正则表达式 数字 cat /tmpfs/dnsmasq.log |grep dnsmasq |grep "dnsmasq[[0-9]*]: [0-9]" |grep "dnsmasq[[0-9]*]: 3 "
- #cat /tmpfs/dnsmasq.log |grep dnsmasq |grep "dnsmasq\[^\d{n}$\]\: $i "
- cat /tmpfs/dnsmasq-temp.log |grep "dnsmasq[[0-9]*]: [0-9]" |grep "dnsmasq[[0-9]*]: $i " |while read line
- do
- #第一种没有任何反馈
- #Thu Sep 22 13:36:53 2022 daemon.info dnsmasq[1]: 520 192.168.11.178/60292 query[AAAA] tracker.openbittorrent.com from 192.168.11.178
- #Thu Sep 22 13:36:53 2022 daemon.info dnsmasq[1]: 520 192.168.11.178/60292 forwarded tracker.openbittorrent.com to 192.168.1.1
- #第二种有正常反馈
- #Thu Sep 22 13:36:53 2022 daemon.info dnsmasq[1]: 522 192.168.11.178/54698 query[AAAA] tracker-udp.gbitt.info from 192.168.11.178
- #Thu Sep 22 13:36:53 2022 daemon.info dnsmasq[1]: 522 192.168.11.178/54698 forwarded tracker-udp.gbitt.info to 192.168.1.1
- #Thu Sep 22 13:36:53 2022 daemon.info dnsmasq[1]: 522 192.168.11.178/54698 reply tracker-udp.gbitt.info is 2a00:f10:10b::1209
- #第三种没有ipv6地址
- #Thu Sep 22 13:37:17 2022 daemon.info dnsmasq[1]: 529 192.168.11.178/56141 query[AAAA] tracker.dler.com from 192.168.11.178
- #Thu Sep 22 13:37:17 2022 daemon.info dnsmasq[1]: 529 192.168.11.178/56141 forwarded tracker.dler.com to 192.168.1.1
- #Thu Sep 22 13:37:17 2022 daemon.info dnsmasq[1]: 529 192.168.11.178/56141 reply tracker.dler.com is <CNAME>
- #Thu Sep 22 13:37:17 2022 daemon.info dnsmasq[1]: 529 192.168.11.178/56141 reply tracker.dler.org is NODATA-IPv6
- #一些典型的记录
- #Thu Sep 22 11:54:56 2022 daemon.info dnsmasq[1]: 1035 192.168.11.108/52426 query[type=65] mesu.apple.com from 192.168.11.108
- #Thu Sep 22 11:54:56 2022 daemon.info dnsmasq[1]: 1035 192.168.11.108/52426 cached mesu.apple.com is <CNAME>
- #Thu Sep 22 11:54:56 2022 daemon.info dnsmasq[1]: 1035 192.168.11.108/52426 cached mesu-cdn.apple.com.akadns.net is <CNAME>
- #Thu Sep 22 11:54:56 2022 daemon.info dnsmasq[1]: 1035 192.168.11.108/52426 cached mesu-china.apple.com.akadns.net is <CNAME>
- #Thu Sep 22 11:54:56 2022 daemon.info dnsmasq[1]: 1035 192.168.11.108/52426 forwarded mesu.apple.com to 192.168.1.1
- #Thu Sep 22 11:54:58 2022 daemon.info dnsmasq[1]: 1035 192.168.11.108/52426 reply error is REFUSED
- #Thu Sep 22 11:45:00 2022 daemon.info dnsmasq[1]: 846 127.0.0.1/58245 query[A] www.ryzl.com.cn from 127.0.0.1
- #Thu Sep 22 11:45:00 2022 daemon.info dnsmasq[1]: 846 127.0.0.1/58245 cached www.ryzl.com.cn is 116.62.23.29
- #Thu Sep 22 11:45:00 2022 daemon.info dnsmasq[1]: 847 ::1/58245 query[A] www.ryzl.com.cn from ::1
- #Thu Sep 22 11:45:00 2022 daemon.info dnsmasq[1]: 847 ::1/58245 cached www.ryzl.com.cn is 116.62.23.29
- #Thu Sep 22 11:45:00 2022 daemon.info dnsmasq[1]: 848 127.0.0.1/58245 query[AAAA] www.ryzl.com.cn from 127.0.0.1
- #Thu Sep 22 11:45:00 2022 daemon.info dnsmasq[1]: 848 127.0.0.1/58245 forwarded www.ryzl.com.cn to 192.168.1.1
- #Thu Sep 22 11:45:00 2022 daemon.info dnsmasq[1]: 849 ::1/58245 query[AAAA] www.ryzl.com.cn from ::1
- #Thu Sep 22 11:45:00 2022 daemon.info dnsmasq[1]: 849 ::1/58245 reply query is duplicate
- echo $line >>/root/dnsjilu/log/zongrizhi-$benciyunxingshijian.txt
- tmp_chaxunleixing=`echo $line |awk '{print $7}'`
- if [ "$tmp_chaxunleixing" == "query[A]" ] || [ "$tmp_chaxunleixing" == "query[AAAA]" ] || [ "$tmp_chaxunleixing" == "query[type=65]" ]
- then
- chaxunleixing=$tmp_chaxunleixing
- chaxunyuming=`echo $line |awk '{print $8}'`
- ip=`echo $line |awk '{print $10}'`
- shijian=`echo $line |awk '{print $1"-"$2,$3}'`
- xuhao=`echo $line |awk '{print $5}'`
- fi
- if [ "$chaxunleixing" != "query[A]" ] && [ "$chaxunleixing" != "query[AAAA]" ]
- then
- echo $line >>/root/dnsjilu/log/zongrizhi-$benciyunxingshijian-chaxunleixingbushiliechude.txt
- fi
- #centos的dnsmasq日志记录 好像reply是查询结果 config是配置的sougou.com结果
- if [ "$tmp_chaxunleixing" == "reply" ]
- then
- if [ "$chaxunleixing" == "query[A]" ] || [ "$chaxunleixing" == "query[AAAA]" ]
- then
- chaxunjieguo=`echo $line |awk '{print $10}'`
- if [ "$chaxunjieguo" != "<CNAME>" ] && [ "$chaxunjieguo" != "NODATA-IPv6" ] && [ "$chaxunjieguo" != "REFUSED" ] && [ "$chaxunjieguo" != "duplicate" ] && [ "$chaxunjieguo" != "SERVFAIL" ]
- then
- #判断结果是不是ipv6
- guoneiwai="ipv6bupanduan"
- shifouipv6=`echo $chaxunjieguo |grep : |wc -l`
- if [ $shifouipv6 -eq 0 ]
- then
- #没有冒号 说明是ipv4
- if ( jianchashifouguowaiip "$chaxunjieguo" )
- then
- guoneiwai="guowai"
- else
- guoneiwai="guonei"
- fi
- fi
- ####echo $chaxunyuming" "$chaxunleixing" "$chaxunjieguo" "$benciyunxingshijian
- yuming=`echo $chaxunyuming |grep -Eo '[^.]+.[^.]+
- 这个脚本是openwrt的脚本 统计dns查询记录,然后查询过的域名就不记录了,只记录新查询的域名
- 方便在有新服务的时候看看用到了哪些域名
- 比如打开steam以后可以看看steam具体用到了哪些域名
- `
- kexueshangwang=`cat /etc/dnsmasq.d/address.conf |grep "/$yuming" |wc -l`
- yijingcunzaiyuming=`cat /etc/dnsmasq.d/guoneiyuming.conf |grep "$yuming" |wc -l`
- if [ $kexueshangwang -eq 0 ] && [ $yijingcunzaiyuming -eq 0 ]
- then
- #如果国外域名没有 同时 国内域名也没有 说明是全新域名 就按照天 和客户端名字 把查询结果记录到文本里面
- echo -e $shijian"\t"$ip"\t"$xuhao"\t"$yuming"\t"$chaxunyuming"\t"$chaxunleixing"\t"$chaxunjieguo"\t"$guoneiwai>>/root/dnsjilu/log/$ip.txt
- echo -e "#"$shijian"\t"$ip"\t"$xuhao"\t"$yuming"\t"$chaxunyuming"\t"$chaxunleixing"\t"$chaxunjieguo>>/etc/dnsmasq.d/guoneiyuming.conf
- #echo $line >>/root/dnsjilu/log/rizhi-$ip-$benciyunxingshijian.txt
- fi
-
- fi
- fi
- fi
-
- done
- done
- #最后有id重复的 需要把已经读取过的行数删掉
- #sed -i '1,'"$hangshu"'d' /tmpfs/dnsmasq.log #不能这样弄,这样弄了dnsmasq就不会继续往这个文件写入日志了
-
- else
- if [ $shangciid -gt $zuihouid ]
- then
- #如果上次id大于最后id,说明dnsmasq重启了,就把上次id变为0 以便下一次运行的时候从头开始
- shangciid=0
- #else
- #不大于也不小于说明是等于,说明没有新的查询就不处理
- fi
- fi
-
- #最后把本次最后id存放到文件里面以便下次调用
- echo $zuihouid >/tmpfs/dnsjilu/shangciid.txt
- echo $hangshu >/tmpfs/dnsjilu/shangcihangshu.txt
- #最后记录一下是否有内存泄露 之前的脚本有内存泄露了
- jilufreelogshijian=`date "+%Y-%m-%d %H:%M"` #%Y%m%d%H%M
- echo $jilufreelogshijian >> /root/dnsjilu/log/free-log.txt
- free >> /root/dnsjilu/log/free-log.txt
- echo "0" >/tmpfs/dnsjilu/zhengzaiyunxing.txt
- #else
- #echo "最后ID是空的说明刚刚启动 还没有客户端发送解析"
- fi
- fi
复制代码
这个脚本是openwrt的脚本 统计dns查询记录,然后查询过的域名就不记录了,只记录新查询的域名
方便在有新服务的时候看看用到了哪些域名
比如打开steam以后可以看看steam具体用到了哪些域名
|
|