python检测服务器是否正常

时间:2022-06-18 05:10:19 

经常使用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,服务器
0
投稿

猜你喜欢

  • 6个asp判断函数使用方法介绍

    2007-09-24 13:10:00
  • element弹窗表格的字体模糊bug解决

    2024-04-18 10:53:25
  • 置信椭圆原理以及椭圆图形绘制方式

    2021-04-24 04:25:04
  • python读取txt文件并取其某一列数据的示例

    2022-09-25 01:58:09
  • 运行tensorflow python程序,限制对GPU和CPU的占用操作

    2022-07-03 02:49:26
  • 参数传递解决window.open的session变量丢失

    2007-10-22 17:40:00
  • python绘制散点图和折线图的方法

    2021-08-24 04:27:56
  • django-csrf使用和禁用方式

    2023-08-13 15:13:34
  • JS 去前后空格大全(IE9亲测)

    2013-08-22 13:01:43
  • python实现Decorator模式实例代码

    2022-05-10 06:04:56
  • WxPython界面利用pubsub如何实现多线程控制

    2021-01-28 08:10:03
  • wxpython 最小化到托盘与欢迎图片的实现方法

    2022-03-04 12:52:42
  • python 用正则表达式筛选文本信息的实例

    2023-04-29 14:12:26
  • asp IsValidEmail 验证邮箱地址函数(email)

    2011-03-03 10:42:00
  • 用Oracle并行查询发挥多CPU的威力

    2010-07-23 12:52:00
  • 标准的、语义的、Unobtrusive的页签tab切换

    2007-11-03 13:58:00
  • 用XML创建可排序、分页的数据显示页面

    2008-04-22 18:25:00
  • ant design vue datepicker日期选择器中文化操作

    2024-05-09 10:51:35
  • 微信小程序module.exports模块化操作实例浅析

    2023-07-02 05:30:27
  • Python制作词云图代码实例

    2023-10-24 11:20:21
  • asp之家 网络编程 m.aspxhome.com