python檢測伺服器是否正常_python

來源:互聯網
上載者:User

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.