diff --git a/Makefile b/Makefile index 40d9ea085398da3585735a0bfd426d71b6f07cef..099deb6631982172f3d1f13a567b94400842606c 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ DESTDIR = /usr/local/nagios/libexec/ -SCRIPTS = check_cups check_glsa check_saned +SCRIPTS = check_cups check_glsa check_saned check_lpd all:; diff --git a/check_lpd b/check_lpd new file mode 100755 index 0000000000000000000000000000000000000000..fdc23e1db44c2b65b0c970a39eb3c4ac38eabe4f --- /dev/null +++ b/check_lpd @@ -0,0 +1,63 @@ +#!/usr/bin/env python +# +# Check an lpd queue on a remote host +# +# Usage: check_lpd host queue +# +# This check script is maintained in a Subversion repository at +# http://lsvn.lysator.liu.se/svnroot/nagios-plugins. Contact +# <ceder@lysator.liu.se> for commit access. + +import socket +import sys +import os + +def connect(host): + s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + try: + s.connect((host, 515)) + except socket.error, err: + print "CRITICAL - ", err.args[1], "| queue=0" + sys.exit(2) + return s + +def check_queue(host, queue): + s = connect(host) + s.send('%c%s\n' % (4, queue)) + res = s.recv(65535) + s.close() + if host == 'laser': + if res == 'JetDirect lpd: no jobs queued on this port\r\n': + print "OK - queue empty. | queue=0" + sys.exit(0) + elif res == 'Active connection from 192.168.10.100\r\n': + print "WARNING - somebody is printing | queue=1" + sys.exit(1) + else: + print "UNKNOWN -", repr(res), "| queue=0" + sys.exit(3) + elif host == 'copier': + if res == 'no entries\n': + print "OK - queue empty. | queue=0" + sys.exit(0) + else: + print "UNKNOWN -", repr(res), "| queue=0" + sys.exit(3) + + print res + +def usage(): + sys.stderr.write("usage: check_lpd host [queue]\n") + sys.exit(64) + +if __name__ == '__main__': + if len(sys.argv) == 3: + host = sys.argv[1] + queue = sys.argv[2] + elif len(sys.argv) == 2: + host = sys.argv[1] + queue = '' + else: + usage() + + check_queue(host, queue)