diff --git a/Makefile b/Makefile index 4bc99e6c46593601a2dc94f18ae99b13748b5205..8b0cbbe87b5585eee2635d22473b93428e1787fd 100644 --- a/Makefile +++ b/Makefile @@ -2,7 +2,7 @@ LIBEXECDIR = /usr/local/nagios/libexec/ SCRIPTS = check_cups check_glsa check_saned check_lpd check_hddtemp \ check_link_status check_true check_lysrdiff check_syslog \ check_ping check_enodia_monitored check_hostextinfo \ - check_hydra check_datorhandbok + check_hydra check_datorhandbok check_no_server all:; diff --git a/check_no_server b/check_no_server new file mode 100644 index 0000000000000000000000000000000000000000..7ffddaa9deeeca4d053f132c726621870dc70c1e --- /dev/null +++ b/check_no_server @@ -0,0 +1,41 @@ +#!/usr/bin/env python + +import socket +import errno + +def unknown(hostname, msg): + print "UNKNOWN - %s: %s" % (hostname, msg) + sys.exit(3) + +def critical(hostname, msg): + print "CRITICAL - %s: %s" % (hostname, msg) + sys.exit(2) + +def warning(hostname, msg): + print "WARNING - %s: %s" % (hostname, msg) + sys.exit(1) + +def ok(hostname, msg): + print "OK - %s: %s" % (hostname, msg) + sys.exit(0) + +def check_no_server(hostname, port): + s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + s.settimeout(7) + try: + s.connect((hostname, port)) + except socket.gaierror, err: + warning(hostname, err[1]) + except socket.timeout: + ok(hostname, "timeout connecting to server") + except socket.error, e: + if e[0] == errno.ECONNREFUSED: + ok(hostname, e[1]) + unknown(hostname, e[1]) + + critical(hostname, "connection succeeded") + +if __name__ == '__main__': + import sys + + check_no_server(sys.argv[1], int(sys.argv[2]))