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基础教程之实现石头剪刀布游戏示例
Feb 11 Python
Python中捕捉详细异常信息的代码示例
Sep 18 Python
python 获取网页编码方式实现代码
Mar 11 Python
Python编程之Re模块下的函数介绍
Oct 28 Python
python reduce 函数使用详解
Dec 05 Python
python实现手机通讯录搜索功能
Feb 22 Python
Python对象属性自动更新操作示例
Jun 15 Python
python用for循环求和的方法总结
Jul 08 Python
Django和Flask框架优缺点对比
Oct 24 Python
python构造IP报文实例
May 05 Python
python 实现一个简单的线性回归案例
Dec 17 Python
用python批量移动文件
Jan 14 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截取中文字符串的问题
2006/07/12 PHP
thinkphp框架实现路由重定义简化url访问地址的方法分析
2020/04/04 PHP
提高代码性能技巧谈—以创建千行表格为例
2006/07/01 Javascript
jQuery入门第一课 jQuery选择符
2010/03/14 Javascript
jQuery 顺便学习下CSS选择器 奇偶匹配nth-child(even)
2010/05/24 Javascript
取消选中单选框radio的三种方式示例介绍
2013/12/23 Javascript
JQuery中的事件及动画用法实例
2015/01/26 Javascript
JavaScript正则表达式之multiline属性的应用
2015/06/16 Javascript
探讨JavaScript中的Rest参数和参数默认值
2015/07/29 Javascript
JavaScript遍历Json串浏览器输出的结果不统一问题
2016/11/03 Javascript
页面间固定参数,通过cookie传值的实现方法
2017/05/31 Javascript
vue2+el-menu实现路由跳转及当前项的设置方法实例
2017/11/07 Javascript
vue 指定组件缓存实例详解
2018/04/01 Javascript
vue :src 文件路径错误问题的解决方法
2018/05/15 Javascript
vue组件开发之用户无限添加自定义填写表单的方法
2018/08/28 Javascript
vue动态添加路由addRoutes之不能将动态路由存入缓存的解决
2019/02/19 Javascript
微信小程序云开发之使用云数据库
2019/05/17 Javascript
微信小程序实现时间进度条功能
2020/11/17 Javascript
Vuex实现购物车小功能
2020/08/17 Javascript
Python计算回文数的方法
2015/03/11 Python
对TensorFlow的assign赋值用法详解
2018/07/30 Python
Python产生一个数值范围内的不重复的随机数的实现方法
2019/08/21 Python
python中def是做什么的
2020/06/10 Python
django models里数据表插入数据id自增操作
2020/07/15 Python
解决selenium+Headless Chrome实现不弹出浏览器自动化登录的问题
2021/01/09 Python
新秀丽拉杆箱美国官方网站:Samsonite美国
2016/07/25 全球购物
美国最大的香水连锁店官网:Perfumania
2016/08/15 全球购物
JD Sports意大利:英国篮球和运动时尚的领导者
2017/10/29 全球购物
意大利网上书店:LaFeltrinelli
2020/06/12 全球购物
教育局长自荐信范文
2013/12/22 职场文书
小区门卫岗位职责
2013/12/31 职场文书
《小猪家的桃花树》教学反思
2014/04/11 职场文书
厉行勤俭节约倡议书
2014/05/16 职场文书
教师敬业奉献模范事迹材料
2014/05/18 职场文书
师范类求职信
2014/06/21 职场文书
幼儿园教师心得体会范文
2016/01/21 职场文书