From 4ecfe600bea338815bb6a6e4b992f32bd010964b Mon Sep 17 00:00:00 2001 From: Peter Palfrader Date: Wed, 4 Oct 2006 13:30:09 +0000 Subject: Add nagios-check-printer-status git-svn-id: svn+ssh://asteria.noreply.org/svn/weaselutils/trunk@188 bc3d92e2-beff-0310-a7cd-cc87d7ac0ede --- nagios-check-printer-status | 69 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100755 nagios-check-printer-status (limited to 'nagios-check-printer-status') diff --git a/nagios-check-printer-status b/nagios-check-printer-status new file mode 100755 index 0000000..768eac0 --- /dev/null +++ b/nagios-check-printer-status @@ -0,0 +1,69 @@ +#!/usr/bin/perl + +# really quick and dirty + +# my %ERRORS = ( OK => 0, WARNING => 1, CRITICAL => 2, UNKNOWN => -1 ); + +use English; +use strict; + +my %CODE = ( + 'UNDEF' => -1, + 'OK' => 0, + 'WARNING' => 1, + 'CRITICAL' => 2, + 'UNKNOWN' => 3 +); + +sub usage($$) { + my ($fh, $exit) = @_; + print $fh "Usage: $PROGRAM_NAME -H -p \n"; + exit $exit; +} + +my $host; +my $printer; + +while (@ARGV) { + my $a = shift @ARGV; + + if ($a eq '-h') { + usage(*STDOUT,0); + }; + if ($a eq '-H') { + usage(*STDERR,1) unless @ARGV; + $host = shift; + next; + }; + if ($a eq '-p') { + usage(*STDERR,1) unless @ARGV; + $printer = shift; + next; + }; + + usage(*STDERR,1); +} +usage(*STDERR,1) unless $host; +usage(*STDERR,1) unless $printer; +if ($host =~ /[^A-Za-z0-9-.]/) { + die "Evil chars in hostname '$host'\n"; +} +if ($printer =~ /[^A-Za-z0-9-.]/) { + die "Evil chars in printername '$printer'\n"; +} + +my $exit = 'OK'; +my @msg; + +open(LP, "/usr/bin/lpstat -h $host -p $printer |") or die ("Cannot exec/open lpstat: $!\n"); +while () { + chomp; + if (/disabled/) { + $exit = 'CRITICAL'; + } + push @msg, $_; +}; +close (LP); + +print "$exit: ".(join "; ", @msg)."\n"; +exit $exit; -- cgit v1.2.3