python检测服务器是否正常


Posted in Python onFebruary 16, 2014

经常使用python检测服务器是否能ping通, 程序是否正常运行(检测对应的端口是否正常)

以前使用shell脚本的写法如下:

PINGRET=$( ping www.baidu.com -c 2 | grep "icmp_" );  if [ -z $PINGRET ]; then echo "ping fail"; else echo "ping ok"; fi

或者
ping -c 2 www.baidu.com|grep "icmp_" && echo 'ping ok' || echo 'ping fail'

代码示例:
#!/usr/bin/python
# encoding=utf-8
# Filename: net_is_normal.py
import os
import socket
import subprocess

#判断网络是否正常
server='www.baidu.com'
#检测服务器是否能ping通,在程序运行时,会在标准输出中显示命令的运行信息
def pingServer(server):
    result=os.system('ping '+server+' -c 2')
    if result:
        print '服务器%s ping fail' % server
    else:
        print '服务器%s ping ok' % server
    print result
#把程序输出定位到/dev/null,否则会在程序运行时会在标准输出中显示命令的运行信息  
def pingServerCall(server):
    fnull = open(os.devnull, 'w')
    result = subprocess.call('ping '+server+' -c 2', shell = True, stdout = fnull, stderr = fnull)
    if result:
        print '服务器%s ping fail' % server
    else:
        print '服务器%s ping ok' % server
    fnull.close()
#可用于检测程序是否正常,如检测redis是否正常,即检测redis的6379端口是否正常
#检测ssh是否正常,即检测ssh的22端口是否正常
def check_aliveness(ip, port):
    sk = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    sk.settimeout(1)
    try:
        sk.connect((ip,port))
        print 'server %s %d service is OK!' %(ip,port)
        return True
    except Exception:
        print 'server %s %d service is NOT OK!'  %(ip,port)
        return False
    finally:
        sk.close()
    return False
if __name__=='__main__':
    pingServerCall(server)
    pingServer(server)
    check_aliveness('192.168.230.128', 6379)
Python 相关文章推荐
Python中的XML库4Suite Server的介绍
Apr 14 Python
Python中with及contextlib的用法详解
Jun 08 Python
python 处理dataframe中的时间字段方法
Apr 10 Python
Python 对输入的数字进行排序的方法
Jun 23 Python
Python手绘可视化工具cutecharts使用实例
Dec 05 Python
Pytest mark使用实例及原理解析
Feb 22 Python
Python图像处理库PIL的ImageGrab模块介绍详解
Feb 26 Python
深度学习入门之Pytorch 数据增强的实现
Feb 26 Python
python实现从ftp服务器下载文件
Mar 03 Python
python文件及目录操作代码汇总
Jul 08 Python
python实现梯度下降算法的实例详解
Aug 17 Python
利用Python函数实现一个万历表完整示例
Jan 23 Python
java直接调用python脚本的例子
Feb 16 #Python
python根据距离和时长计算配速示例
Feb 16 #Python
python根据经纬度计算距离示例
Feb 16 #Python
python转换摩斯密码示例
Feb 16 #Python
python动态监控日志内容的示例
Feb 16 #Python
python缩进区别分析
Feb 15 #Python
python求斐波那契数列示例分享
Feb 14 #Python
You might like
PHP实现时间轴函数代码
2011/10/08 PHP
PHP实现取得HTTP请求的原文
2014/08/18 PHP
浅析php原型模式
2014/11/25 PHP
php+mysqli事务控制实现银行转账实例
2015/01/29 PHP
如何简单地用YUI做JavaScript动画
2007/03/10 Javascript
JObj预览一个JS的框架
2008/03/13 Javascript
基于jquery循环map功能的代码
2011/02/26 Javascript
javascript实现日历控件(年月日关闭按钮)
2012/12/12 Javascript
javascript模拟实现C# String.format函数功能代码
2013/11/25 Javascript
js实现下拉列表选中某个值的方法(3种方法)
2015/12/17 Javascript
jQuery对象的链式操作用法分析
2016/05/10 Javascript
jQuery绑定事件的四种方式介绍
2016/10/31 Javascript
Node.js的特点详解
2017/02/03 Javascript
Javascript实现倒计时时差效果
2017/05/18 Javascript
angularjs数组判断是否含有某个元素的实例
2018/02/27 Javascript
使用JS代码实现俄罗斯方块游戏
2018/08/03 Javascript
vue的style绑定background-image的方式和其他变量数据的区别详解
2018/09/03 Javascript
vue实现直播间点赞飘心效果的示例代码
2019/09/20 Javascript
js实现九宫格抽奖
2020/03/19 Javascript
使用JavaScript获取Django模板指定键值数据
2020/05/27 Javascript
Python中的自省(反射)详解
2015/06/02 Python
解决Linux系统中python matplotlib画图的中文显示问题
2017/06/15 Python
python编程实现随机生成多个椭圆实例代码
2018/01/03 Python
TensorFlow实现AutoEncoder自编码器
2018/03/09 Python
Python 线性回归分析以及评价指标详解
2020/04/02 Python
Ibood荷兰:互联网每日最佳在线优惠
2019/02/28 全球购物
Tessabit美国:集世界奢侈品和设计师品牌的意大利精品买手店
2020/06/29 全球购物
配置管理计划的主要内容有哪些
2014/06/20 面试题
租赁协议书范本
2014/04/22 职场文书
电焊工岗位工作职责
2014/07/09 职场文书
报表员工作失误检讨书范文
2014/09/19 职场文书
2014年卫生工作总结
2014/11/27 职场文书
2015年第十五个全民国防教育日宣传活动方案
2015/05/06 职场文书
Python 内置函数速查表一览
2021/06/02 Python
Maven学习----Maven安装与环境变量配置教程
2021/06/29 Java/Android
MySQL池化框架学习接池自定义
2022/07/23 MySQL