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 Mysql自动备份脚本
Jul 14 Python
python实现类的静态变量用法实例
May 08 Python
python类和函数中使用静态变量的方法
May 09 Python
Django查找网站项目根目录和对正则表达式的支持
Jul 15 Python
利用ctypes提高Python的执行速度
Sep 09 Python
使用Python多线程爬虫爬取电影天堂资源
Sep 23 Python
python类的继承实例详解
Mar 30 Python
Python实现计算圆周率π的值到任意位的方法示例
May 08 Python
Python实现的在特定目录下导入模块功能分析
Feb 11 Python
Python中遍历列表的方法总结
Jun 27 Python
python爬虫之爬取百度音乐的实现方法
Aug 24 Python
keras slice layer 层实现方式
Jun 11 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 无限极分类
2008/03/27 PHP
php实现执行某一操作时弹出确认、取消对话框
2013/12/30 PHP
PHP遍历XML文档所有节点的方法
2015/03/12 PHP
PHP环境搭建的详细步骤
2016/06/30 PHP
php简单压缩css样式示例
2016/09/22 PHP
YII2框架中添加自定义模块的方法实例分析
2020/03/18 PHP
js word表格动态添加代码
2010/06/07 Javascript
关于js new Date() 出现NaN 的分析
2012/10/23 Javascript
基于Node.js实现nodemailer邮件发送
2016/01/26 Javascript
学习javascript文件加载优化
2016/02/19 Javascript
Angular设置title信息解决SEO方面存在问题
2016/08/19 Javascript
jQuery基于BootStrap样式实现无限极地区联动
2016/08/26 Javascript
js变量提升深入理解
2016/09/16 Javascript
jQuery中的deferred使用方法
2017/03/27 jQuery
在vue项目中使用md5加密的方法
2018/09/14 Javascript
jQuery操作事件完整实例分析
2020/01/10 jQuery
JS原型和原型链原理与用法实例详解
2020/02/05 Javascript
基于Vue中的父子传值问题解决
2020/07/27 Javascript
[48:31]完美世界DOTA2联赛PWL S3 DLG vs Phoenix 第二场 12.17
2020/12/19 DOTA
深度剖析使用python抓取网页正文的源码
2014/06/11 Python
浅谈Python程序与C++程序的联合使用
2015/04/07 Python
python使用PIL模块获取图片像素点的方法
2019/01/08 Python
详解python实现交叉验证法与留出法
2019/07/11 Python
解决python gdal投影坐标系转换的问题
2020/01/17 Python
HTML5 离线应用之打造零请求、无流量网站的解决方法
2013/04/25 HTML / CSS
汉森批发:Hansen Wholesale
2018/05/24 全球购物
Java中的类包括什么内容?设计时要注意哪些方面
2012/05/23 面试题
营业员岗位职责范本
2015/04/14 职场文书
文员岗位职责范本
2015/04/16 职场文书
建国大业电影观后感
2015/06/01 职场文书
小学英语教师研修感悟
2015/11/18 职场文书
情侣餐厅的创业计划书范本!
2019/07/26 职场文书
Go语言 go程释放操作(退出/销毁)
2021/04/30 Golang
Python 线程池模块之多线程操作代码
2021/05/20 Python
各种货币符号快捷输入
2022/02/17 杂记
忘记Grafana不要紧2种Grafana重置admin密码方法详细步骤
2022/04/07 Servers