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获取指定路径下所有指定后缀文件的方法
May 26 Python
Google开源的Python格式化工具YAPF的安装和使用教程
May 31 Python
python实现随机漫步算法
Aug 27 Python
Python中的异常处理try/except/finally/raise用法分析
Feb 28 Python
Python OpenCV实现鼠标画框效果
Aug 19 Python
django框架forms组件用法实例详解
Dec 10 Python
自定义实现 PyQt5 下拉复选框 ComboCheckBox的完整代码
Mar 30 Python
python 等差数列末项计算方式
May 03 Python
python实现凯撒密码、凯撒加解密算法
Jun 11 Python
Python如何爬取b站热门视频并导入Excel
Aug 10 Python
Python内置函数property()如何使用
Sep 01 Python
python MD5加密的示例
Oct 19 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禁止页面缓存的代码
2011/10/23 PHP
php中通过curl模拟登陆discuz论坛的实现代码
2012/02/16 PHP
php中使用__autoload()自动加载未定义类的实现代码
2013/02/06 PHP
php生成Android客户端扫描可登录的二维码
2016/05/13 PHP
php 函数中静态变量使用的问题实例分析
2020/03/05 PHP
jQuery实现感应鼠标动画效果自动伸长的输入框实例
2015/02/24 Javascript
javascript实现框架高度随内容改变的方法
2015/07/23 Javascript
jquery实现简单的轮换出现效果实例
2015/07/23 Javascript
JS实现生成会变大变小的圆环实例
2015/08/05 Javascript
js实现二级菜单渐隐显示
2015/11/03 Javascript
jQuery实现查找最近父节点的方法
2016/06/23 Javascript
JavaScript 随机验证码的生成实例代码
2016/09/22 Javascript
html、css和jquery相结合实现简单的进度条效果实例代码
2016/10/24 Javascript
微信小程序中实现一对多发消息详解及实例代码
2017/02/14 Javascript
Angular.js中处理页面闪烁的方法详解
2017/03/09 Javascript
JavaScript基于activexobject连接远程数据库SQL Server 2014的方法
2017/07/12 Javascript
Angular之toDoList的实现代码示例
2017/12/02 Javascript
jquery获取元素到屏幕四周可视距离的方法
2018/09/05 jQuery
jQuery pager.js 插件动态分页功能实例分析
2019/08/02 jQuery
VUE项目实现主题切换的多种方法
2020/11/26 Vue.js
[02:33]DOTA2亚洲邀请赛趣味视频之吐真话筒
2018/03/31 DOTA
Python Sleep休眠函数使用简单实例
2015/02/02 Python
python每隔N秒运行指定函数的方法
2015/03/16 Python
关于python的list相关知识(推荐)
2017/08/30 Python
numpy实现合并多维矩阵、list的扩展方法
2018/05/08 Python
PyTorch的深度学习入门之PyTorch安装和配置
2019/06/27 Python
html5如何及时更新缓存文件(js、css或图片)
2013/06/24 HTML / CSS
马德里运动鞋商店:Nigra Mercato
2020/02/16 全球购物
亿阳信通股份有限公司C#笔试题
2016/12/06 面试题
MIS软件工程师的面试题
2016/04/22 面试题
中医药大学市场营销专业自荐信
2013/09/29 职场文书
职业生涯规划书基本格式
2014/01/06 职场文书
服务口号大全
2014/06/11 职场文书
个人借条范本
2015/05/25 职场文书
监护人证明
2015/06/19 职场文书
婚礼必备主持词范本!
2019/07/23 职场文书