免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1736 | 回复: 4
打印 上一主题 下一主题

perl脚本(加入crontab)跟踪DNS总延时情况 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-06-23 22:42 |只看该作者 |倒序浏览
crontab中根据需要加入perl脚本,跟踪DNS延时情况,做报表用的。
得到的log文件,可以再用于画图等。

请各位指正!谢谢!

perl脚本如下:
#!/usr/bin/perl -w

use strict;
use POSIX qw/strftime/;
local $"="\t";
my $dig="
/usr/sbin/dig";
my $ns="ip_ns
";
my $log="
/dig.log";
my $date=strftime ("
%Y%m%d",localtime);
my @list;
my @domains=qw/
        www.google.com
        www.sina.com.cn
/;
foreach my $domain(@domains) {
        push @list,&dig_time($domain);
}
open FILE,"
>> $log"  or
        die "
$!";
print FILE "
$date\t@list\n";
close FILE;
sub dig_time {
        my $time;
        my ($dom)=@_;
        open (DIG,"
$dig $dom \@$ns +trace|") or
                die "
Unable to dig:$!\n";

        while (<DIG>) {
                if (/in\s(\d+)\sms$/) {
                        $time+=$1;
                }
        }
        return $time;
}



[ 本帖最后由 gaochong 于 2009-6-23 22:50 编辑 ]
check1234 该用户已被删除
2 [报告]
发表于 2009-06-24 09:38 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
3 [报告]
发表于 2009-06-24 10:24 |只看该作者
原帖由 check1234 于 2009-6-24 09:38 发表
然后定时发送到管理员手上。



这到好,不用到机器上去拉了。

这部分代码能不能贴上来参考下?

论坛徽章:
0
4 [报告]
发表于 2009-06-24 13:06 |只看该作者

回复 #1 gaochong 的帖子

以上代码有点儿问题,一来没有close DIG,二来没有检查 $? 的值。

修改后的代码如下:


#!/usr/bin/perl -w


use strict;
use POSIX qw/strftime/;
local $"="\t";
my $dig="
/usr/sbin/dig";
my $ns="
ip_ns";
my $log="
/dig.log";
my $date=strftime ("
%Y%m%d",localtime);
my @list;
my @domains=qw/
        www.google.com
        www.sina.com.cn
/;
foreach my $domain(@domains) {
        push @list,&dig_time($domain);
}
open FILE,"
>> $log"  or
        die "
$!";
print FILE "
$date\t@list\n";
close FILE;
sub dig_time {
        my $time;
        my ($dom)=@_;
        open (DIG,"
$dig $dom \@$ns +trace|") or
                die "
Unable to dig:$!\n";
        while (<DIG>;) {
                if (/in\s(\d+)\sms$/) {
                        $time+=$1;
                }
        }
       close DIG;     #修正
        return $? ? "
NULL" : $time;


[ 本帖最后由 gaochong 于 2009-6-24 13:08 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2009-06-24 13:13 |只看该作者

回复 #4 gaochong 的帖子

疑问,是否有必要close DIG呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP