python下使用ping检查网络连通情况
使用python调用ping命令,然后在日志中记录ping的结果,用来监测网络连通情况。
代码:
[python]
from time import *
from subprocess import *
webf= open("webs.txt","r")
webs=[]
for w in webf:
webs.append(w.strip())
def logAppend(log,info):
inttime = time()
structtime = localtime(inttime)
strtime = strftime("%Y-%m-%d,%H:%M:%S",structtime)
print "at ",strtime
log.write("================== "+strtime+" ==================\n")
log.write(info)
log.write("\n\n")
print "append info to file :",log.name
print info
def netCheck():
while True:
for url in webs:
p = Popen(["ping.exe",url],
stdin=PIPE,stdout=PIPE,stderr=PIPE,
shell=True)
out = p.stdout.read()
log = open("log\\"+url+".log","a")
logAppend(log,out)
log.close()
sleep(0.01)
print "waiting ..."
sleep(60*15) #sleep for 15min. 60*15
return
def main():
"""
the main function
"""
print "start..."
netCheck()
print "end."
if __name__ == "__main__":
main()
from time import *
from subprocess import *
webf= open("webs.txt","r")
webs=[]
for w in webf:
webs.append(w.strip())
def logAppend(log,info):
inttime = time()
structtime = localtime(inttime)
strtime = strftime("%Y-%m-%d,%H:%M:%S",structtime)
print "at ",strtime
log.write("================== "+strtime+" ==================\n")
log.write(info)
log.write("\n\n")
print "append info to file :",log.name
print info
def netCheck():
while True:
for url in webs:
p = Popen(["ping.exe",url],
stdin=PIPE,stdout=PIPE,stderr=PIPE,
shell=True)
out = p.stdout.read()
log = open("log\\"+url+".log","a")
logAppend(log,out)
log.close()
sleep(0.01)
print "waiting ..."
sleep(60*15) #sleep for 15min. 60*15
return
def main():
"""
the main function
"""
print "start..."
netCheck()
print "end."
if __name__ == "__main__":
main()
说明:
webs.txt为目的地址,如www.baidu.com,每行一个。
需要在当前目录下自己建立一个名为log的文件夹。
关于time模块:
[python]
inttime = time()##得到的是当前时间的小数形式:1366356992.617
structtime = localtime(inttime)###转换为本地时间,
#返回的结果是:time.struct_time(tm_year=2013, tm_mon=4, tm_mday=19,
inttime = time()##得到的是当前时间的小数形式:1366356992.617
structtime = localtime(inttime)###转换为本地时间,
#返回的结果是:time.struct_time(tm_year=2013, tm_mon=4, tm_mday=19, [python] view plaincopyprint?
tm_hour=15, tm_min=36, tm_sec=32, tm_wday=4, tm_yday=109, tm_isdst=0)
#这个看着很不顺眼,继续格式化转换:
strtime = strftime("%Y-%m-%d,%H:%M:%S",structtime)
tm_hour=15, tm_min=36, tm_sec=32, tm_wday=4, tm_yday=109, tm_isdst=0)
#这个看着很不顺眼,继续格式化转换:
strtime = strftime("%Y-%m-%d,%H:%M:%S",structtime)[python] view plaincopyprint?
##返回的就是你想要的格式的字符串:2013-04-19,15:36:32
##返回的就是你想要的格式的字符串:2013-04-19,15:36:32
其他参数类型:
strftime(format[, tuple]) -> string
将指定的struct_time(默认为当前时间),根据指定的格式化字符串输出
python中时间日期格式化符号:
%y 两位数的年份表示(00-99)
%Y 四位数的年份表示(000-9999)
%m 月份(01-12)
%d 月内中的一天(0-31)
%H 24小时制小时数(0-23)
%I 12小时制小时数(01-12)
%M 分钟数(00=59)
%S 秒(00-59)
%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%c 本地相应的日期表示和时间表示
%j 年内的一天(001-366)
%p 本地A.M.或P.M.的等价符
%U 一年中的星期数(00-53)星期天为星期的开始
%w 星期(0-6),星期天为星期的开始
%W 一年中的星期数(00-53)星期一为星期的开始
%x 本地相应的日期表示
%X 本地相应的时间表示
%Z 当前时区的名称
%% %号本身
补充:Web开发 , Python ,