use Carp;
use POSIX;
+delete @ENV{'IFS', 'CDPATH', 'ENV', 'BASH_ENV', 'PATH'};
+$ENV{'PATH'} = "/usr/bin:/usr/sbin:/sbin:/bin";
+
sub Usage {
print STDERR <<END;
Usage: $0 [[-config] CONFIG] [-hostwidth width] [-diskwidth width] [-skipmissed] [-last] [-num0] [-togo0] [-verbose]
die "$0: error in opening `$amadmin $opt_config disklist' pipe: $!\n";
$/ = "";
while (<$dlfh>) {
- ($host, $disk) = m/ host (.*?):.* disk (.*?):/s;
+ ($host, $disk) = m/ host (.*?):.* disk (.*?):.*strategy (STANDARD|NOFULL|NOINC|HANOI|INCRONLY).*ignore NO/s;
next unless $host;
$disks{$host}{$disk}++;
}
die "$0: error in opening `$amadmin $opt_config find' pipe: $!\n";
<$fh>;
while (<$fh>) {
-print "'$_'\n";
chomp;
next if /found Amanda directory/;
next if /skipping cruft directory/;
next if /skip-incr/;
- ($date, $host, $disk, $level, $tape, $file, $part, $status) = quotewords(" ", 0, $_);
+
+ ($date, $time, $host, $disk, $level, $tape, $file, $part, $status) = shellwords($_);
+
next if $date eq 'date';
next if $date eq 'Warning:';
next if $date eq 'Scanning';
next if $date eq "";
+
+ if($time !~/^\d\d:\d\d:\d\d$/) {
+ $status = $part;
+ $part = $file;
+ $file = $tape;
+ $tape = $level;
+ $level = $disk;
+ $disk = $host;
+ $host = $time;
+ }
+
if ($date =~ /^\d\d\d\d-\d\d-\d\d$/) {
- defined($level{$host}{$disk}{$date}) or
- $level{$host}{$disk}{$date} = '';
- $level{$host}{$disk}{$date} .= ($status eq 'OK') ? $level : 'E';
- $dates{$date}++;
+ if(defined $disks{$host}{$disk}) {
+ defined($level{$host}{$disk}{$date}) or
+ $level{$host}{$disk}{$date} = '';
+ $level{$host}{$disk}{$date} .= ($status eq 'OK') ? $level : 'E';
+ $dates{$date}++;
+ }
}
else {
print "bad date $date in $_\n";