国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python檢測服務器是否正常

2019-11-25 18:31:10
字體:
來源:轉載
供稿:網友

經常使用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)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 江都市| 安顺市| 博湖县| 漳浦县| 天等县| 白城市| 门头沟区| 额济纳旗| 天柱县| 静乐县| 高台县| 依兰县| 蒙城县| 巴里| 崇信县| 灵寿县| 中西区| 大丰市| 靖宇县| 墨玉县| 阳高县| 梁河县| 奈曼旗| 英吉沙县| 山东省| 乌兰县| 惠水县| 辽阳县| 阳西县| 碌曲县| 磴口县| 黔西县| 滨州市| 临朐县| 临沭县| 右玉县| 右玉县| 宜兰市| 锡林浩特市| 桂林市| 台东县|