Build precise queries to find exactly what you need
Press ESC to close
Join our next live webinar: “Advanced Nagios Monitoring Techniques” – Register Now
@Graff
Favorites0
Views
Projects0
#!/usr/bin/env python # This script is a Nagios plugin used to check the status # of a CPanel license # # Author: Christopher Thunes # Date: 15 June 2007 # License: BSD License # # Updater: Andrey Kishkin aka Graff # Date: 27 November 2017 # %s should be put in place of the ip address LICENSE_CHECK_URL = "http://verify.cpanel.net/index.cgi?ip=%s" # Regex string to search for the 'active' keyword #regexExtractURL = r"[^a-zA-Z0-9]*active[^a-zA-Z0-9" ) argsparser.add_option("-H", "--hostname", dest="host", help="Host to run test on" ) (options, args) = argsparser.parse_args() # Check for the required hostname if options.host == None: print "-H or --hostname is required" sys.exit(3) numeric = None try: address = socket.gethostbyname(options.host) except socket.gaierror: printOutput( 2 ) html = urllib.urlopen( LICENSE_CHECK_URL % (address) ) regex = re.compile(regexExtractURL) if html == None: printOutput( 3 ) found = False; for line in html.readlines(): if regex.search(line): found = True if found is False: printOutput( 1 ) html = urllib.urlopen( LICENSE_CHECK_URL % (address) ) for line in html.readlines(): match = re.search(regexAcivatedDate ,line) if match: printOutput ( 0, match.group('date')) def printOutput ( numeric, date = '' ): returnValues = ( 0, 2, 2, 2 ) if numeric == 0: print "CPANEL OK: license active, Activated: ", date elif numeric == 1: print "CPANEL CRITICAL: license inactive" elif numeric == 2: print "CPANEL CRITICAL: could not resolve hostname" elif numeric == 3: print "CPANEL CRITICAL: could not load license page" sys.exit(returnValues[numeric]) if __name__ == "__main__": main( )
Reviewed 8 years ago