From: Peter Palfrader Date: Mon, 14 Apr 2008 17:09:31 +0000 (-0400) Subject: [project @ peter@palfrader.org-20080414170931-6vz7nczbvkzzy0b5] X-Git-Url: https://git.adam-barratt.org.uk/?a=commitdiff_plain;h=02f5bd5b8b1cac546feda2cb2542400449173dbd;p=mirror%2Fdsa-nagios.git [project @ peter@palfrader.org-20080414170931-6vz7nczbvkzzy0b5] dsa-check-dabackup: terser output --- diff --git a/dsa-nagios-nrpe-config/debian/changelog b/dsa-nagios-nrpe-config/debian/changelog index 9477392..d5d5782 100644 --- a/dsa-nagios-nrpe-config/debian/changelog +++ b/dsa-nagios-nrpe-config/debian/changelog @@ -1,3 +1,9 @@ +dsa-nagios-nrpe-config (29) unstable; urgency=low + + * dsa-check-dabackup: terser output. + + -- Peter Palfrader Mon, 14 Apr 2008 13:09:07 -0400 + dsa-nagios-nrpe-config (28) unstable; urgency=low * dsa-check-dabackup: ignore .bak files in confdir. diff --git a/dsa-nagios-nrpe-config/dsa-check-dabackup b/dsa-nagios-nrpe-config/dsa-check-dabackup index d33b8ae..98d2d9e 100755 --- a/dsa-nagios-nrpe-config/dsa-check-dabackup +++ b/dsa-nagios-nrpe-config/dsa-check-dabackup @@ -45,11 +45,12 @@ $SIG{__DIE__ } = sub() { my $EXITCODE = 'UNDEF'; -my @MESSAGE = (); +my %MESSAGE = (); -sub problem($$) { - my ($code, $msg) = @_; - push @MESSAGE, $msg; +sub problem($$$) { + my ($code, $msg, $resource) = @_; + $MESSAGE{$msg} = [] unless defined $MESSAGE{$msg}; + push @{$MESSAGE{$msg}}, $resource; $EXITCODE = ($CODE{$code} > $CODE{$EXITCODE}) ? $code : $EXITCODE; }; @@ -111,24 +112,28 @@ opendir(DIR, $logdir) or die ("Cannot opendir $logdir: $!\n"); my %logfiles = map {$_ => 1} grep { !/^\./ && !/\.[0-9]+(\.gz)?$/} readdir(DIR); closedir(DIR); +if (scalar keys %conffiles == 0) { + print "WARNING: da-backup installed but no backups configured\n"; + exit $CODE{'WARNING'}; +}; + for my $f (keys %conffiles) { unless (exists $logfiles{$f}) { - problem('WARNING', "$f has no log"); + problem('WARNING', 'no log', $f); } } -problem('WARNING', 'da-backup installed but no backups configured') if (scalar keys %conffiles == 0); FILE: for my $f (sort {$a cmp $b} keys %logfiles) { unless (exists $conffiles{$f}) { - problem('WARNING', "log $f has no config"); + problem('WARNING', 'no config', $f); next; } my @stat = stat("$logdir/$f") or die ("Cannot stat $logdir/$f: $!\n"); my $age = time - $stat[10]; if ($age < 0) { - problem('WARNING', "%f is from the future"); + problem('WARNING', 'future timestamp', $f); next; } elsif ($age > $MAX_AGE) { my $hage; @@ -138,7 +143,7 @@ for my $f (sort {$a cmp $b} keys %logfiles) { } else { $hage = sprintf("%d hours", $age / 3600); }; - problem('WARNING', "$f is $hage old"); + problem('WARNING', 'old', "$f ($hage)"); next; }; @@ -149,15 +154,16 @@ for my $f (sort {$a cmp $b} keys %logfiles) { while () { chomp; if (/^sent\s+\d+\s+bytes\s+received\s+\d+\s+bytes\s+[\d\.]+\s+bytes\/sec$/) { - problem('OK', "$f probably ok"); + problem('OK', 'probably ok', $f); close(FH); next FILE; }; $last2 = $last; $last = $_; }; - problem('CRITICAL', "$f failed ($last2 $last)"); + problem('CRITICAL', 'FAILED', "$f ($last2 $last)"); }; -print $EXITCODE,": ", join("; ", @MESSAGE), "\n"; +my $msg = join("; ", map {"$_: ".join(', ', @{$MESSAGE{$_}}) } (sort {$a cmp $b} keys %MESSAGE)); +print $EXITCODE, ": ", $msg, "\n"; exit $CODE{$EXITCODE};