#!/usr/bin/python
python
# -*- coding: utf-8 -*-app
import urllib2
ide
import os
函数
import sys
ui
import logging
url
from time import ctime,sleep
spa
import threading
日志
# 设置访问超时时间
code
timeout = 2
orm
# 设置url 以字典格式存放
url={
"hcs-cloud-zuul":"http://10.41.1.132:8086/info",
"hcs-cloud-admin":"http://10.41.1.132:8089",
}
scriptpwd = os.path.split(os.path.realpath(sys.argv[0]))[0]
scriptname = os.path.split(os.path.realpath(sys.argv[0]))[1]
# 定义日志路径和名称
log_pwd = "%s/log" %(scriptpwd)
log_pwd_name = "%s/log/%s.log" % (scriptpwd, scriptname)
def judge_file_dir(filename):
"""
: param filename: 目录或文件名
: return: 存在为 True 不存在未 False
"""
fdresult = os.path.exists(str(filename))
if fdresult == False:
logging.error("目录或者文件不存在:%s" %(filename))
return fdresult
# 日志文件判断
if judge_file_dir(log_pwd) == False:
os.mkdir(log_pwd)
fdresultlog = judge_file_dir(log_pwd_name)
if fdresultlog == False:
newf = open(log_pwd_name,'w')
newf.write("自动建立日志文件'\n'")
newf.close()
# 定义日志
logging.basicConfig(level=logging.INFO,
format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',
datefmt='%a, %d %b %Y %H:%M:%S',
filename= log_pwd_name,
filemode='a')
def determineuser():
"""
判断当前用户是否为root,如果自动退出
: param
: return
"""
uid = os.geteuid()
if uid == 0:
logging.error("The currently executing user to root, automatic withdrawal")
sys.exit(1)
# 访问结果处理函数
def show_status(url,time,ip):
req = urllib2.Request(url)
try:
response = urllib2.urlopen(req, timeout=time)
status_code = response.getcode()
if status_code != 200:
logging.error("%s 访问异常, 返回状态码为: %s" %(url,status_code))
threadLock.acquire()
iplist.append(ip)
threadLock.release()
response.close()
return 0
except Exception,e:
logging.error("%s 访问异常, 异常缘由: %s" %(url,e))
threadLock.acquire()
iplist.append(ip)
threadLock.release()
return 1
if __name__== "__main__":
#print "开始时间:%s" %ctime()
iplist = []
threadLock = threading.Lock()
threads = []
for i in url.keys():
thread = threading.Thread(target=show_status,args=(url[i],timeout,i))
threads.append(thread)
for t in threads:
t.setDaemon(True)
t.start()
t.join()
sleep(timeout + 0.8)
if len(iplist) == 0:
print "访问正常"
#print 0
else:
#print 1
print "访问异常ip有 %s" %(" ".join(iplist))
#print "结束时间:%s" %ctime()