lfjigu 发表于 2019-1-15 08:05:57

object

  #! /usr/bin/env python2.6
# 2013-1-28
# written by Tony.yang
#

import os
import sys
import getopt
import urllib

def usage():
      print """
---------------------------------------------------------------------------------------------
| Tony-warn: This nagios receiving return status.(0:OK; 1:WARNING;2:CRITICAL;3:UNKNOWN) |
---------------------------------------------------------------------------------------------
Usage: check_web_status [-h|--help] [-u|--url value] [-s|--status url_status]

If url_status is not %s of the url, the script will send critical message. % (url_status)
"""
      sys.exit(3)

# obtain command args
try:
      options, args = getopt.getopt(sys.argv, 'hu:s:', '--help --url= --status=')
except getopt.GetoptError:
      usage()
      sys.exit(3)

#
argUrl = 'http://__init__'
argStatus = '200__init__'

#
for name, value in options:
      if name in ('-h', '--help'):
                usage()
      if name in ('-u', '--url'):
                try:
                        argUrl = value
                except Exception:
                        print "Unable to converting char URL\n"
      if name in ('-s', '--status'):
                try:
                        argStatus = value
                except Exception:
                        print "Unable to converting char STATUS\n"
                        usage()

try:
      Status_url = urllib.urlopen(argUrl).getcode()
      #print"WEB: %s" % Status_url
except Exception:
      print "GETLOADAVG UNKNOWN: Error while requesting this URL"
      sys.exit(3)

if str(argStatus) == str(Status_url):
      print "WEBURL OK: This %s state is %s" % (argUrl, Status_url)
      print "0"
      sys.exit(0)
else:
      #print "weburl xx: the url is %s" % (argStatus)
      print "WEBURL CRITICAL: This %s state is %s" % (argUrl, Status_url)
      print "2"
      sys.exit(2)


备注:
此脚本使用起来很灵活,可以和nagios使用起来也很方便,废话不多说,看实例:
python2.6 check_web_status.py -u yoururl -s yoururl_status(200, 301, 302, 404, 500 ... 都可以)

# /usr/bin/python2.6 check_web_status.py -u http://www.8558.com/ -s 200
WEBURL OK: This http://www.8558.com/ state is 200
0
页: [1]
查看完整版本: object