|
| 1 | +#!-*- encoding: utf-8 -*- |
| 2 | +import urllib2 |
| 3 | +import logging |
| 4 | +import os |
| 5 | +import time |
| 6 | +from ConfigParser import ConfigParser |
| 7 | +from logging.handlers import TimedRotatingFileHandler |
| 8 | + |
| 9 | +LOG_FILE = "./logs/output.log" |
| 10 | + |
| 11 | +logger = logging.getLogger() |
| 12 | +logger.setLevel(logging.INFO) |
| 13 | +fh = TimedRotatingFileHandler(LOG_FILE,when='midnight',interval=1,backupCount=30) |
| 14 | +datefmt = '%Y-%m-%d %H:%M:%S' |
| 15 | +format_str = '%(asctime)s %(levelname)s %(message)s ' |
| 16 | +formatter = logging.Formatter(format_str, datefmt) |
| 17 | +fh.setFormatter(formatter) |
| 18 | +fh.suffix = "%Y%m%d%H%M" |
| 19 | +logger.addHandler(fh) |
| 20 | + |
| 21 | +def getUrlcode(url): |
| 22 | + try: |
| 23 | + start = time.time() |
| 24 | + response = urllib2.urlopen(url,timeout=10) |
| 25 | + msg = 'httpcode is ' + str(response.getcode()) + ' - open url use time ' + str((time.time()-start)*1000) + 'ms' |
| 26 | + logging.info(msg) |
| 27 | + return response.getcode() |
| 28 | + except urllib2.URLError as e: |
| 29 | + msg = 'open url error ,reason is:' + str(e.reason) |
| 30 | + logging.info(msg) |
| 31 | + |
| 32 | +def get(field, key): |
| 33 | + result = "" |
| 34 | + try: |
| 35 | + result = cf.get(field, key) |
| 36 | + except: |
| 37 | + result = "" |
| 38 | + return result |
| 39 | + |
| 40 | +def read_config(config_file_path, field, key): |
| 41 | + cf = ConfigParser() |
| 42 | + try: |
| 43 | + cf.read(config_file_path) |
| 44 | + result = cf.get(field, key) |
| 45 | + except: |
| 46 | + sys.exit(1) |
| 47 | + return result |
| 48 | + |
| 49 | +CONFIGFILE='./cfg/config.ini' |
| 50 | + |
| 51 | +os.environ["JAVA_HOME"] = read_config(CONFIGFILE,'MonitorProgram','JAVA_HOME') |
| 52 | +os.environ["CATALINA_HOME"] = read_config(CONFIGFILE,'MonitorProgram','CATALINA_HOME') |
| 53 | + |
| 54 | +ProgramPath = read_config(CONFIGFILE,'MonitorProgram','StartPath') |
| 55 | +ProcessName = read_config(CONFIGFILE,'MonitorProcessName','ProcessName') |
| 56 | +url = read_config(CONFIGFILE,'MonitorUrl','Url') |
| 57 | +#url = "http://dh.361way.com/" |
| 58 | + |
| 59 | + |
| 60 | +while True: |
| 61 | + HttpCode = getUrlcode(url) |
| 62 | + |
| 63 | + if HttpCode is not 200: |
| 64 | + command = 'taskkill /F /FI "WINDOWSTITLE eq ' + ProcessName + '"' |
| 65 | + os.system(command) |
| 66 | + os.system(ProgramPath) |
| 67 | + |
| 68 | + time.sleep(30) |
| 69 | + |
| 70 | +''' |
| 71 | +import os |
| 72 | +import socket |
| 73 | +def IsOpen(ip,port): |
| 74 | + s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) |
| 75 | + try: |
| 76 | + s.connect((ip,int(port))) |
| 77 | + s.shutdown(2) |
| 78 | + print '%d is open' % port |
| 79 | + return True |
| 80 | + except: |
| 81 | + print '%d is down' % port |
| 82 | + return False |
| 83 | +if __name__ == '__main__': |
| 84 | + IsOpen('127.0.0.1',800) ''' |
0 commit comments