python检测主机的连通性并记录到文件的实例
目录结构
ping_test/ ├──bin │├──ping.py │├──ping_run.sh.origin │└──ping.sh ├──conf │└──ip.lst ├──logs │├──10.10.37.196_2017-06-28_ping.log │└──10.10.62.229_2017-06-28_ping.log └──README.md
代码
catbin/ping.py
#!/usr/bin/envpython #-*-coding:utf-8 fromsubprocessimportPopen,PIPE importshlex importtime importdatetime importsys,os basedir=os.path.dirname(os.path.dirname(os.path.abspath(__file__))) cnf=os.path.join(basedir,'conf','ip.lst') #printcnf whileTrue: today=datetime.datetime.strftime(datetime.datetime.now(),"%Y-%m-%d") withopen(cnf)asf: forhostinf: host=host.strip() cmd='shping.sh%s'%host args=shlex.split(cmd) p=Popen(args,stdout=PIPE,stderr=PIPE) stdout,stderr=p.communicate() filename=host+'_%s_ping.log'%today logfile=os.path.join(basedir,'logs',filename) #printlogfile ifstdout: withopen(logfile,'ab')asfd: fd.write(stdout) fd.flush() elifstderr: print('pinglost') time.sleep(1)
catping.sh
#!/bin/bash HOST=$1 ping-c1${HOST}|grep'bytesfrom'|awk'{print$0"\t"strftime("%T%F",systime())}'
以上这篇python检测主机的连通性并记录到文件的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。