要在Linux上使用Python脚本监控网络服务质量,你可以使用ping
命令和subprocess
库来执行ping操作并获取结果
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)
这个脚本定义了一个ping
函数,它使用subprocess.run
执行ping命令。如果ping成功,函数返回True,否则返回False。
monitor_network_quality
函数接受一个主机列表和一个监控间隔(默认为60秒)。它会无限循环地对每个主机执行ping操作,并打印出主机是否可达的信息。
在__main__
部分,我们定义了一个要监控的主机列表,然后调用monitor_network_quality
函数开始监控。
请注意,这个脚本需要root权限才能运行,因为它使用了ICMP协议,而在某些系统上,只有root用户才能发送和接收ICMP数据包。要以root权限运行脚本,请在终端中输入sudo python3 network_monitor.py
(假设脚本名为network_monitor.py
)。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。