#!/usr/bin/env python import sys, getopt nagios_codes = {'OK': 0, 'WARNING': 1, 'CRITICAL': 2, 'UNKNOWN': 3, 'DEPENDENT': 4} def usage(): """ returns nagios status UNKNOWN with a one line usage description usage() calls nagios_return() """ nagios_return('UNKNOWN', "usage: {0} -h host".format(sys.argv[0])) def nagios_return(code, response): """ prints the response message and exits the script with one of the defined exit codes DOES NOT RETURN """ print code + ": " + response sys.exit(nagios_codes[code]) def check_condition(host): """ a dummy check doesn't really check anything """ return {"code": "OK", "message": host + " ok"} def main(): """ example options processing here we're expecting 1 option "-h" with a parameter """ if len(sys.argv) < 2: usage() try: opts, args = getopt.getopt(sys.argv[1:], "h:") except getopt.GetoptError, err: usage() for o, value in opts: if o == "-h": host = value else: usage() result = check_condition(host) nagios_return(result['code'], result['message']) if __name__ == "__main__": main()