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;
}
$header="";
while(<FILE>) {
$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; }
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);
}
#########