X-Git-Url: http://git.pippins.net/embedvideo/.git/.%24link.?a=blobdiff_plain;f=zfs-log-parser;h=dbb3c15a88a8e533a05ad30593c35755d84a0c7b;hb=e868864af07febc5755735d451d74d9bc3ba170d;hp=d43e650e1d64d328d17e7f8ee407ec43662ed978;hpb=c86dd7de4b6627ff5bccb105bb4c06f6cd70d602;p=zfs-nexenta%2F.git diff --git a/zfs-log-parser b/zfs-log-parser index d43e650..dbb3c15 100755 --- a/zfs-log-parser +++ b/zfs-log-parser @@ -37,9 +37,9 @@ sub adjust_duration { sub adjust_data { my ($data) = @_; - if($data > ($giga)) { $data = $data / $giga; $data = sprintf("%2.2fGb",$data); } - elsif($data > ($mega)) { $data = int($data / $mega); $data = "$data"."Mb"; } - elsif($data > ($kilo)) { $data = int($data / $kilo); $data = "$data"."Kb"; } + if(abs($data) > ($giga)) { $data = $data / $giga; $data = sprintf("%2.2fGb",$data); } + elsif(abs($data) > ($mega)) { $data = int($data / $mega); $data = "$data"."Mb"; } + elsif(abs($data) > ($kilo)) { $data = int($data / $kilo); $data = "$data"."Kb"; } return $data; } @@ -94,19 +94,20 @@ sub parse_snapshot_totals_logfile { $header=""; while() { $line = $_; + if($line =~ /logfile turned over/) { next; } if(($in_totals == 0) && ($line =~ /(\S+)\s+(\S+)\s+(\d+)\s+(\d+):(\d+):(\d+)\s+(\S+)\s+(\S+)/)) { $dayname=$1; $month=$2; $daynum=$3; $hour=$4; $minute=$5; $sec=$6; $year=$8; $in_totals = 1; $month = $month2num{$month}; if($daynum < 10) { $daynum = "0".$daynum; } $date="$month-$daynum-$year"; - if(!defined $dates{$date}) { $header .= $date . " "; } - $dates{$date} = 1; + if(!defined $founddates{$date}) { $header .= $date . " "; } + $founddates{$date} = 1; } - if(($in_totals == 1) && ($line =~ /^\s+$/)) { + elsif(($in_totals == 1) && ($line =~ /^\s+$/)) { $in_totals = 0; } - if(($in_totals == 1) && ($line =~ /(\S+)\s+([\d\.]+)(\w+)\s+(\d+)/)) { + elsif(($in_totals == 1) && ($line =~ /(\S+)\s+([\d\.]+)(\w+)\s+(\d+)/)) { $filesystem = $1; $data = $2; $size = $3; $num_snaps = $4; if($filesystem =~ /Snapshots/) { next; } if($filesystem =~ /$backup_pool/) { next; } @@ -129,15 +130,21 @@ sub parse_snapshot_totals_logfile { if($date !~ /(\d+)-(\d+)-(\d+)/) { next; } $date_data=adjust_data($totals{$filesystem}{$date}{data}); $data .= sprintf("%10s",$date_data). " "; + $date_totals{$date}{data} += $totals{$filesystem}{$date}{data}; } $data_total=adjust_data($data_total); $total_delta+=$totals{$filesystem}{delta}; $delta=adjust_data($totals{$filesystem}{delta}); printf("%-${maxlen}s %s %10s\n",$filesystem,$data,$delta); } + $data=""; $data_len=length($data); $total_delta=adjust_data($total_delta); - printf("%-${maxlen}s %-${data_len}s %10s\n","Totals:","",$total_delta); + foreach $date (sort keys %date_totals) { + $date_data=adjust_data($date_totals{$date}{data}); + $data .= sprintf("%10s",$date_data). " "; + } + printf("%-${maxlen}s %-${data_len}s %10s\n","Totals:",$data,$total_delta); } #########