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中使用SimpleParse模块进行解析的教程
Apr 11 Python
在Python程序中操作文件之isatty()方法的使用教程
May 24 Python
Python实现的使用telnet登陆聊天室实例
Jun 17 Python
Python的Flask框架中集成CKeditor富文本编辑器的教程
Jun 13 Python
浅谈Pandas 排序之后索引的问题
Jun 07 Python
Numpy数据类型转换astype,dtype的方法
Jun 09 Python
python截取两个单词之间的内容方法
Dec 25 Python
tensorflow模型保存、加载之变量重命名实例
Jan 21 Python
python 元组的使用方法
Jun 09 Python
python写文件时覆盖原来的实例方法
Jul 22 Python
基于opencv实现简单画板功能
Aug 02 Python
教你如何使用Python实现二叉树结构及三种遍历
Jun 18 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+Ajax实现表单验证的详解
2013/06/25 PHP
php addslashes 利用递归实现使用反斜线引用字符串
2013/08/05 PHP
PHP采用自定义函数实现遍历目录下所有文件的方法
2014/08/19 PHP
PHP+Mysql+jQuery实现发布微博程序 php篇
2015/10/15 PHP
php去除二维数组的重复项方法
2015/11/03 PHP
PHP开发api接口安全验证操作实例详解
2020/03/26 PHP
jquery创建div 实现代码
2009/04/27 Javascript
js操作textarea方法集合封装(兼容IE,firefox)
2011/02/22 Javascript
Jquery实现页面加载时弹出对话框代码
2013/04/19 Javascript
jquery自动切换tabs选项卡的具体实现
2013/12/24 Javascript
通过Javascript读取本地Excel文件内容的代码示例
2014/04/08 Javascript
判断字符串的长度(优化版)中文占两个字符
2014/10/30 Javascript
js表格排序实例分析(支持int,float,date,string四种数据类型)
2015/05/06 Javascript
浅析BootStrap Treeview的简单使用
2016/10/12 Javascript
JavaScript中数组Array方法详解
2017/02/27 Javascript
vue复合组件实现注册表单功能
2017/11/06 Javascript
JavaScript设计模式之代理模式简单实例教程
2018/07/03 Javascript
js实现黑白div块画空心的图形
2018/12/13 Javascript
通过实例了解JS 连续赋值
2019/09/24 Javascript
node.js Promise对象的使用方法实例分析
2019/12/26 Javascript
解决Vue + Echarts 使用markLine标线(precision精度问题)
2020/07/20 Javascript
使用 Github Actions 自动部署 Angular 应用到 Github Pages的方法
2020/07/20 Javascript
python自动裁剪图像代码分享
2017/11/25 Python
Django 中间键和上下文处理器的使用
2019/03/17 Python
python通过对字典的排序,对json字段进行排序的实例
2020/02/27 Python
Django xadmin安装及使用详解
2020/10/26 Python
纯CSS打造(无图像无js)的非常流行的讲话(语音)气泡效果
2012/12/28 HTML / CSS
HTML5给汉字加拼音收起展开组件的实现代码
2020/04/08 HTML / CSS
奥地利网上书店:Weltbild
2017/07/14 全球购物
php优化查询foreach代码实例讲解
2021/03/24 PHP
自我鉴定范文300字
2013/10/01 职场文书
总经理岗位职责范本
2014/02/02 职场文书
2015年新农村建设工作总结
2015/05/22 职场文书
教师培训简讯
2015/07/20 职场文书
SQL使用复合索引实现数据库查询的优化
2022/05/25 SQL Server
HTML5页面打开微信小程序功能实现
2022/09/23 HTML / CSS