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程序与服务器连接的WSGI接口
Apr 29 Python
python利用Guetzli批量压缩图片
Mar 23 Python
Python实现数据库并行读取和写入实例
Jun 09 Python
Anaconda入门使用总结
Apr 05 Python
python微信聊天机器人改进版(定时或触发抓取天气预报、励志语录等,向好友推送)
Apr 25 Python
Python的PIL库中getpixel方法的使用
Apr 09 Python
解决python DataFrame 打印结果不换行问题
Apr 09 Python
Python 使用 PyQt5 开发的关机小工具分享
Jul 16 Python
安装pyinstaller遇到的各种问题(小结)
Nov 20 Python
python实现简易名片管理系统
Apr 11 Python
Python中super().__init__()测试以及理解
Dec 06 Python
python数字图像处理之图像的批量处理
Jun 28 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 静态化实现代码
2009/03/20 PHP
PHP跨时区(UTC时间)应用解决方案
2013/01/11 PHP
页面乱码问题的根源及其分析
2013/08/09 PHP
php读取本地文件常用函数(fopen与file_get_contents)
2013/09/09 PHP
PHP反射机制用法实例
2014/08/28 PHP
使用PHPCMS搭建wap手机网站
2015/09/20 PHP
Yii框架多语言站点配置方法分析【中文/英文切换站点】
2020/04/07 PHP
怎么用javascript进行拖拽
2006/07/20 Javascript
任意位置显示html菜单
2007/02/01 Javascript
js 静态动态成员 and 信息的封装和隐藏
2011/05/29 Javascript
JS将制定内容复制到剪切板示例代码
2014/02/11 Javascript
Node.js中的事件驱动编程详解
2014/08/16 Javascript
JavaScript实现同步于本地时间的动态时间显示方法
2015/02/02 Javascript
使用jquery.qrcode.min.js实现中文转化二维码
2016/03/11 Javascript
微信小程序 教程之WXSS
2016/10/18 Javascript
微信小程序 选择器(时间,日期,地区)实例详解
2016/11/16 Javascript
JavaScript+Html5实现按钮复制文字到剪切板功能(手机网页兼容)
2017/03/30 Javascript
小程序实现五星点评效果
2018/11/03 Javascript
详解promise.then,process.nextTick, setTimeout 以及 setImmediate的执行顺序
2018/11/21 Javascript
Angular单元测试之事件触发的实现
2020/01/20 Javascript
微信小程序 接入腾讯地图的两种写法
2021/01/12 Javascript
Vue多选列表组件深入详解
2021/03/02 Vue.js
python中使用urllib2伪造HTTP报头的2个方法
2014/07/07 Python
python列表每个元素同增同减和列表元素去空格的实例
2019/07/20 Python
CSS3实现菜单悬停效果
2020/11/17 HTML / CSS
英国医生在线预约:Top Doctors
2019/10/30 全球购物
室内拓展活动方案
2014/02/13 职场文书
担保书怎么写
2014/04/01 职场文书
小学班主任培训方案
2014/06/04 职场文书
大学教师师德师风演讲稿
2014/08/22 职场文书
拾金不昧表扬稿
2015/01/16 职场文书
食品安全主题班会
2015/08/13 职场文书
大学生就业指导课心得体会
2016/01/15 职场文书
初中物理教学反思
2016/02/19 职场文书
2019年行政人事个人工作总结范本!
2019/07/19 职场文书
「玫瑰之王的葬礼」舞台剧主视觉图公开
2022/03/21 日漫