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中的列表推导浅析
Apr 26 Python
python实现的生成随机迷宫算法核心代码分享(含游戏完整代码)
Jul 11 Python
利用python实现简单的邮件发送客户端示例
Dec 23 Python
python方向键控制上下左右代码
Jan 20 Python
TensorFlow模型保存和提取的方法
Mar 08 Python
Python matplotlib绘图可视化知识点整理(小结)
Mar 16 Python
Selenium元素的常用操作方法分析
Aug 10 Python
python实现矩阵打印
Mar 02 Python
将labelme格式数据转化为标准的coco数据集格式方式
Feb 17 Python
解决pytorch 模型复制的一些问题
Mar 03 Python
MATLAB 如何求取离散点的曲率最大值
Apr 16 Python
pytorch 如何使用float64训练
May 24 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
长波有什么东西
2021/03/01 无线电
咖啡的化学
2021/03/03 咖啡文化
PHP调用三种数据库的方法(1)
2006/10/09 PHP
php 数组二分法查找函数代码
2010/02/16 PHP
php下统计用户在线时间的一种尝试
2010/08/26 PHP
PHP magento后台无法登录问题解决方法
2016/11/24 PHP
PHP单例模式应用示例【多次连接数据库只实例化一次】
2018/12/18 PHP
JavaScript中令你抓狂的魔术变量
2006/11/30 Javascript
javascript数字格式化通用类 accounting.js使用
2012/08/24 Javascript
js网页版计算器的简单实现
2013/07/02 Javascript
基于jquery实现的省市区级联无ajax
2013/09/24 Javascript
nw.js实现类似微信的聊天软件
2015/03/16 Javascript
jQuery取得元素标签名称小结(附代码)
2017/08/16 jQuery
详解vue中axios的封装
2018/07/18 Javascript
node.js 使用 net 模块模拟 websocket 握手进行数据传递操作示例
2020/02/11 Javascript
[06:37]2014DOTA2国际邀请赛 昔日王者渴望重回巅峰
2014/07/12 DOTA
python应用程序在windows下不出现cmd窗口的办法
2014/05/29 Python
python中MySQLdb模块用法实例
2014/11/10 Python
Python网络爬虫实例讲解
2016/04/28 Python
python使用matplotlib绘制柱状图教程
2017/02/08 Python
python使用正则表达式替换匹配成功的组并输出替换的次数
2017/11/22 Python
pandas 透视表中文字段排序方法
2018/11/16 Python
Django实现前台上传并显示图片功能
2020/05/29 Python
Python爬虫爬取有道实现翻译功能
2020/11/27 Python
利用python绘制正态分布曲线
2021/01/04 Python
Electric官网:美国高级眼镜和配件品牌
2020/06/04 全球购物
2013年学期结束动员演讲稿
2014/01/07 职场文书
哈弗商学院毕业生求职信
2014/02/26 职场文书
金融管理专业毕业生求职信
2014/03/12 职场文书
计算机毕业生自荐信
2014/06/12 职场文书
舞蹈教育学专业自荐信
2014/06/15 职场文书
机械工程及其自动化专业求职信
2014/08/08 职场文书
单位在职证明书
2014/09/11 职场文书
安全保证书怎么写
2015/02/28 职场文书
2015年艾滋病宣传活动总结
2015/03/27 职场文书
毕业生就业推荐表自我鉴定
2019/06/20 职场文书