博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用python和批处理bat脚本ping检测主机连通性
阅读量:6824 次
发布时间:2019-06-26

本文共 929 字,大约阅读时间需要 3 分钟。

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

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
#!/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

blob.png

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

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


1
2
3
4
5
@echo 
off
set THISDATE=%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%
set IP=127.0.0.1
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来调用这个脚本

blob.png

BINGO

本文转自 青苗飞扬 51CTO博客,原文链接:http://blog.51cto.com/qingmiao/2052657

转载地址:http://uslzl.baihongyu.com/

你可能感兴趣的文章
设计模式之单例模式
查看>>
获取客户端ip地址
查看>>
sessionid如何产生?由谁产生?保存在哪里?
查看>>
oracle 监听服务异常
查看>>
网络流——最大流Dinic算法
查看>>
下面的div浮动上来了
查看>>
程序员生存定律
查看>>
windows 下搭建 apache + php52 + postgreSQL7/8/9环境
查看>>
ECMAscript一(对象种类)
查看>>
python正则表达式
查看>>
分布式系统的面试题3
查看>>
[原译]理解并实现装饰器模式
查看>>
移动端文本框被原生键盘弹出后挡住文本框
查看>>
项目启动会的意义
查看>>
js捕捉浏览器关闭事件
查看>>
1.6 贪婪算法
查看>>
进击的Python【第十章】:Python的高级应用(多进程,进程间通信,协程与异步,牛逼的IO多路复用)...
查看>>
数据类型
查看>>
Linux环境下的SVN创建新的项目
查看>>
CSMA/CD
查看>>