python实现检测服务器是否可以ping通的2种方法

好想在2014结束前再赶出个10篇博文来,~(>_ result.txt

思路也很简单,将ip列表读取来写进一个iplist文件,然后再对这个文件fping(调用fping.sh)批量执行的结果写进result文件:

代码如下:

def check_online_ip():
ip = mysql(‘select * from ip_check’)

#将ip写进一个文件
if os.path.exists(‘iplist.txt’):
os.remove(‘iplist.txt’)
iplist= ‘iplist.txt’
for i in range(0,len(ip)):
with open(iplist, ‘a’) as f:
f.write(ip[i][0]+’\n’)

#对文件中的ip进行fping
p = subprocess.popen(r’./fping.sh’,stdout=subprocess.pipe)
p.stdout.read()

#读result.txt文件,将ip is unreachable的行提取更新mysql状态为1
result = open(‘result.txt’,’r’)
content = result.read().split(‘\n’)
for i in range(0,len(content)-1):
tmp = content[i]
ip = tmp[:tmp.index(‘is’)-1]
status = 0
if ‘unreachable’ in tmp:
status = 1
#print i,ip
mysql(‘update ip_check set status=%d where ip=”%s”‘%(status,ip))
print ‘check all ipconnectness over!’

将这个搞成计划任务,每天跑几遍,还是挺赞的。 呵呵。。

Posted in 未分类