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最长公共子串算法实例
Mar 07 Python
举例讲解Python中is和id的用法
Apr 03 Python
Python实现发送QQ邮件的封装
Jul 14 Python
Python3.遍历某文件夹提取特定文件名的实例
Apr 26 Python
Python使用jsonpath-rw模块处理Json对象操作示例
Jul 31 Python
Django异步任务之Celery的基本使用
Mar 23 Python
python交易记录整合交易类详解
Jul 03 Python
python3 打印输出字典中特定的某个key的方法示例
Jul 06 Python
django 环境变量配置过程详解
Aug 06 Python
python 使用cx-freeze打包程序的实现
Mar 14 Python
Python基于内置函数type创建新类型
Oct 22 Python
Python如何实现感知器的逻辑电路
Dec 25 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
PHILIPS L4X25T电路分析和打理
2021/03/02 无线电
php 目录与文件处理-郑阿奇(续)
2011/07/04 PHP
封装ThinkPHP的一个文件上传方法实例
2014/10/31 PHP
利用php做服务器和web前端的界面进行交互
2016/10/31 PHP
PHP设计模式之装饰器模式定义与用法详解
2018/04/02 PHP
php设计模式之抽象工厂模式分析【星际争霸游戏案例】
2020/01/23 PHP
PhpStorm+xdebug+postman调试技巧分享
2020/09/15 PHP
弹出广告特效(一个IP只弹出一次)的代码
2007/07/27 Javascript
javascript 获取select下拉列表值的代码
2009/09/07 Javascript
jquery ajax提交表单数据的两种方式
2009/11/24 Javascript
jQuery UI Dialog控件中的表单无法正常提交的解决方法
2010/12/19 Javascript
Jqyery中同等与js中windows.onload的应用
2011/05/10 Javascript
使用命令对象代替switch语句的写法示例
2015/02/28 Javascript
jQuery实现TAB风格的全国省份城市滑动切换效果代码
2015/08/24 Javascript
jquery树形菜单效果的简单实例
2016/06/06 Javascript
mui back 返回刷新页面的实例
2017/12/06 Javascript
详解Bootstrap 学习(一)入门
2019/04/12 Javascript
基于layui框架响应式布局的一些使用详解
2019/09/16 Javascript
JavaScript实现简单的计算器
2020/01/16 Javascript
js实现省级联动(数据结构优化)
2020/07/17 Javascript
前端性能优化建议
2020/09/17 Javascript
Python实现一个简单的MySQL类
2015/01/07 Python
python访问类中docstring注释的实现方法
2015/05/04 Python
深入剖析Python的爬虫框架Scrapy的结构与运作流程
2016/01/20 Python
Python正则表达式使用范例分享
2016/12/04 Python
Python实现决策树C4.5算法的示例
2018/05/30 Python
解决pycharm回车之后不能换行或不能缩进的问题
2019/01/16 Python
python获取响应某个字段值的3种实现方法
2020/04/30 Python
大学应届生求职简历的自我评价
2013/10/08 职场文书
仪器仪表检测毕业生自荐信
2013/10/31 职场文书
暑期社会实践学生的自我评价
2014/01/09 职场文书
标准自荐信范文
2014/01/29 职场文书
鸿星尔克广告词
2014/03/21 职场文书
最美劳动诗,致敬所有的劳动者!
2019/07/12 职场文书
浅谈MySQL表空间回收的正确姿势
2021/10/05 MySQL
win10清理dns缓存
2022/04/19 数码科技