python调用ping命令并输出ttl_使用python和批处理bat脚本ping检测主机连通性

今天因为工作需求,要在报盘机器上(windows系统)检测与上手连接的网络可用性,使用zabbix自身的功能并不能解决这个问题。所以一开始考虑使用python脚本调系统的ping命令来检测

然后再使用zabbix来监控就可完成任务。

网上查了下,发现使用subprocess和shlex可以完成检测,于是参考着整了个小脚本

#!/usr/bin/env python

# -*- coding: utf-8 -*-

#author:qingmiao

import subprocess

import shlex

cmd = "ping -n 1 127.0.0.1"

args = shlex.split(cmd)

try:

subprocess.check_call(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE)

print "1"

except subprocess.CalledProcessError:

print "0"

执行后如下图所示,检测成功返回1,否则返回0

后来发现这种方式没有落地成文件,不方便追踪。试了好多方法,最终发现使用windows自带的bat脚本就能轻松实现,惊喜不已!

把执行结果重定向到一个以时间戳命名的文件里面,里面以时间分割,便于追踪结果。

@echo off

set THISDATE=%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%

set IP=10.10.83.131

echo %TIME:~0,8% >>D:\test\ping_result_%THISDATE%.txt

(ping %IP% -n 1 | find "TTL" >>D:\test\ping_result_%THISDATE%.txt)&& echo 1 || echo 0

执行结果如下,同样可以使用zabbix来调用这个脚本

BINGO

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值