溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Linux Python腳本監(jiān)控網(wǎng)絡(luò)服務(wù)質(zhì)量

發(fā)布時(shí)間:2024-09-12 10:54:36 來源:億速云 閱讀:78 作者:小樊 欄目:編程語言

要在Linux上使用Python腳本監(jiān)控網(wǎng)絡(luò)服務(wù)質(zhì)量,你可以使用ping命令和subprocess庫來執(zhí)行ping操作并獲取結(jié)果

import subprocess
import time

def ping(host, timeout=2):
    try:
        result = subprocess.run(
            ["ping", "-c", "1", "-W", str(timeout), host],
            stdout=subprocess.DEVNULL,
            stderr=subprocess.DEVNULL,
            check=True,
        )
        return True
    except subprocess.CalledProcessError:
        return False

def monitor_network_quality(hosts, interval=60):
    while True:
        for host in hosts:
            if ping(host):
                print(f"{host} is reachable.")
            else:
                print(f"{host} is not reachable.")
        time.sleep(interval)

if __name__ == "__main__":
    hosts_to_monitor = ["8.8.8.8", "example.com"]
    monitor_network_quality(hosts_to_monitor)

這個(gè)腳本定義了一個(gè)ping函數(shù),它使用subprocess.run執(zhí)行ping命令。如果ping成功,函數(shù)返回True,否則返回False。

monitor_network_quality函數(shù)接受一個(gè)主機(jī)列表和一個(gè)監(jiān)控間隔(默認(rèn)為60秒)。它會(huì)無限循環(huán)地對(duì)每個(gè)主機(jī)執(zhí)行ping操作,并打印出主機(jī)是否可達(dá)的信息。

__main__部分,我們定義了一個(gè)要監(jiān)控的主機(jī)列表,然后調(diào)用monitor_network_quality函數(shù)開始監(jiān)控。

請(qǐng)注意,這個(gè)腳本需要root權(quán)限才能運(yùn)行,因?yàn)樗褂昧薎CMP協(xié)議,而在某些系統(tǒng)上,只有root用戶才能發(fā)送和接收ICMP數(shù)據(jù)包。要以root權(quán)限運(yùn)行腳本,請(qǐng)?jiān)诮K端中輸入sudo python3 network_monitor.py(假設(shè)腳本名為network_monitor.py)。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI