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 图片验证码代码
Dec 07 Python
详谈Python高阶函数与函数装饰器(推荐)
Sep 30 Python
python简单商城购物车实例代码
Mar 15 Python
Python中偏函数用法示例
Jun 07 Python
Python判断以什么结尾以什么开头的实例
Oct 27 Python
Django网络框架之HelloDjango项目创建教程
Jun 06 Python
Win10+GPU版Pytorch1.1安装的安装步骤
Sep 27 Python
Tensorflow 实现将图像与标签数据转化为tfRecord文件
Feb 17 Python
Django-xadmin+rule对象级权限的实现方式
Mar 30 Python
Python爬取梨视频的示例
Jan 29 Python
pytorch __init__、forward与__call__的用法小结
Feb 27 Python
Python万能模板案例之matplotlib绘制直方图的基本配置
Apr 13 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下利用header()函数设置浏览器缓存的代码
2010/09/01 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十)
2014/06/24 PHP
yii2中结合gridview如何使用modal弹窗实例代码详解
2016/06/12 PHP
PHP单例模式详解及实例代码
2016/12/21 PHP
PHP实现的简单对称加密与解密方法实例小结
2017/08/28 PHP
从零开始学习jQuery (三) 管理jQuery包装集
2011/02/23 Javascript
js左侧三级菜单导航实例代码
2013/09/13 Javascript
jquery、js调用iframe父窗口与子窗口元素的方法整理
2014/07/31 Javascript
jQuery级联操作绑定事件实例
2014/09/02 Javascript
JS使用JSON作为参数实例分析
2016/06/23 Javascript
javascript实现的图片预览功能
2017/03/25 Javascript
详解如何使用webpack打包Vue工程
2017/05/27 Javascript
JavaScript实现的文本框placeholder提示文字功能示例
2018/07/25 Javascript
了解JavaScript中的选择器
2019/05/24 Javascript
javascript中的offsetWidth、clientWidth、innerWidth及相关属性方法
2020/05/14 Javascript
[15:35]教你分分钟做大人:天怒法师
2014/10/30 DOTA
浅谈Python实现2种文件复制的方法
2018/01/19 Python
tf.truncated_normal与tf.random_normal的详细用法
2018/03/05 Python
python实现写数字文件名的递增保存文件方法
2018/10/25 Python
python re.sub()替换正则的匹配内容方法
2019/07/22 Python
python 批量修改 labelImg 生成的xml文件的方法
2019/09/09 Python
解决Keras使用GPU资源耗尽的问题
2020/06/22 Python
Python在后台自动解压各种压缩文件的实现方法
2020/11/10 Python
Python批量删除mysql中千万级大量数据的脚本分享
2020/12/03 Python
python爬虫利器之requests库的用法(超全面的爬取网页案例)
2020/12/17 Python
pycharm配置python 设置pip安装源为豆瓣源
2021/02/05 Python
html5+CSS3+JS实现七夕言情功能代码
2017/08/28 HTML / CSS
斯德哥尔摩通票:Stockholm Pass
2018/01/09 全球购物
英国最大的婴儿监视器网上商店:Baby Monitors Direct
2018/04/24 全球购物
Java中采用什么结构来捕获、处理异常?各子句的顺序、功能如何
2013/10/07 面试题
采购内勤岗位职责
2013/12/10 职场文书
大专学生求职信
2014/07/04 职场文书
退休欢送会致辞
2015/07/31 职场文书
2016年大学校运会广播稿件
2015/12/21 职场文书
祝福语集锦:给满月宝宝的祝福语
2019/11/20 职场文书
python模块与C和C++动态库相互调用实现过程示例
2021/11/02 Python