Use expect_empty_remote_list flag when checking if remote list should be empty or not
[zfs-ubuntu/.git] / zfs-log-parser
index 2167493f9676a2d91fd538b6a569a28605acec40..560cba229fe6543afd968ac881118e98532ee5cd 100755 (executable)
@@ -52,23 +52,23 @@ sub parse_replicate_logfile {
        if(($in_replicate == 0) && ("$startdate" ne "") && ($line !~ /$startdate/)) { next; }
        if($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;
-           if(($in_replicate == 0) && ($line =~ /lock obtained/)) {
+           if(($in_replicate == 0) && ($line =~ /replicate started/)) {
                $in_replicate = 1;
                $date="$dayname $month $daynum $hour:$minute:$sec $year";
                $totals{$date}{data} = 0;
                $totals{$date}{transfertime} = 0;
                $totals{$date}{duration} = time_to_seconds($hour,$minute,$sec);
            }
-           elsif(($in_replicate == 1) && ($line=~ /lock released/)) {
+           elsif(($in_replicate == 1) && ($line=~ /replicate complete/)) {
                $in_replicate = 0;
                $totals{$date}{duration} = time_to_seconds($hour,$minute,$sec) - $totals{$date}{duration};
            }
        }   
        if(($in_replicate == 1) && ($line =~ /received ([\d\.]+)(\w+)/)) {
            $data = $1; $size = $2;
-           if($size =~ /Kb/i) { $data = $data * $kilo; }
-           if($size =~ /Mb/i) { $data = $data * $mega; }
-           if($size =~ /Gb/i) { $data = $data * $giga; }
+           if($size =~ /(Kb|K)/i) { $data = $data * $kilo; }
+           if($size =~ /(Mb|M)/i) { $data = $data * $mega; }
+           if($size =~ /(Gb|G)/i) { $data = $data * $giga; }
            chomp($line);
            $totals{$date}{data} += $data;
        }
@@ -117,7 +117,7 @@ sub parse_snapshot_totals_logfile {
        elsif(($in_totals == 1) && ($line =~ /(\S+)\s+([\d\.]*)(\w+)\s+(\d+)/)) {
            $filesystem = $1; $data = $2; $size = $3; $num_snaps = $4;
            if($filesystem =~ /Snapshots/ || $filesystem =~ /Total/) { next; }
-           if($filesystem =~ /$backup_pool/) { next; }
+           if($filesystem =~ /^$backup_pool/) { next; }
            if(length($filesystem) > $maxlen) { $maxlen = length($filesystem); }
            if($size =~ /K/i) { $data = $data * $kilo; }
            if($size =~ /M/i) { $data = $data * $mega; }
@@ -159,7 +159,11 @@ sub parse_snapshot_totals_logfile {
 # MAIN
 #########
 #print "-> Parsing $logfile\n";
-open(FILE,"$logfile") || die "-E- Unable to open $logfile\n";
+if("$logfile" =~ /\.[bz2|gz]/) { 
+  open(FILE,"zcat $logfile|") || die "-E- Unable to open $logfile\n";
+} else {
+  open(FILE,"$logfile") || die "-E- Unable to open $logfile\n";
+}
 
 if($logfile =~ /replicate/) { parse_replicate_logfile(); }
 if($logfile =~ /snapshot-totals/) { parse_snapshot_totals_logfile(); }