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检测主机的连通性并记录到文件的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。