分析log的简单perl脚本01


logAsny.pl

#! perl -w



my $logName = "E:\\tmp\\ldfs_log\\fw_4_single_ok.log";
#my $logName = "E:\\tmp\\ldfs_log\\fw_12_single_lost.log";

my $ioNum = 0;
my $lazyIoNum = 0;
my $lazyIoNum30 = 0;
my $lazyIoNum60 = 0;

#logAnsyFile
my $logAnsyFile = "E:\\logAnsy01_30ms.log";
#my $logAnsyFile = "E:\\logAnsy02_30ms.log";

open(OUTFILE, ">$logAnsyFile");

open(LOGFILE, $logName) || die("couldn't read file $logName01: $!\n");
while (my $line = <LOGFILE>) {
	$ioNum++;
	if($line =~ /TimeInterval/) {
		$lazyIoNum++;
		printf  "I/O time: ";
		my @seg = split /\s+/, $line;
		print OUTFILE ("$seg[7] ");
		if($seg[7]>=30) {
			$lazyIoNum30++;
		}
		if($seg[7]>=60) {
			$lazyIoNum60++;
		}
		printf $seg[7]."ms\n";
	}
}

print OUTFILE ("\nioNum:       $ioNum \n");
print OUTFILE ("lazyIoNum:   $lazyIoNum \n");
print OUTFILE ("lazyIoNum30: $lazyIoNum30 \n");
print OUTFILE ("lazyIoNum60: $lazyIoNum60 \n");
my $point = $lazyIoNum/$ioNum; 
my $point30 = $lazyIoNum30/$ioNum;
my $point301 = $lazyIoNum30/$lazyIoNum;
my $point601 = $lazyIoNum60/$lazyIoNum;
$point = sprintf("%.4f", $point);
$point30 = sprintf("%.4f", $point30);
$point301 = sprintf("%.4f", $point301);
$point601 = sprintf("%.4f", $point601);
print OUTFILE ("lazy/ALL:    $point \n");
print OUTFILE ("lazy30/ALL:  $point30 \n");
print OUTFILE ("lazy30/lazy: $point301 \n");
print OUTFILE ("lazy60/lazy: $point601 \n");


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值