下面就来详细讲解如何实现Python3监控Windows和Linux系统的CPU、硬盘、内存使用率和各个端口的开启情况的完整攻略。
一、监控CPU、内存、硬盘
1. 安装psutil模块
psutil是一个跨平台的库,可以方便地实现对系统的各项性能指标的获取,如CPU、内存、硬盘等。在Python3中使用pip安装即可。
pip3 install psutil
2. 获取CPU、内存、硬盘使用率
下面的代码演示了如何获取CPU、内存、硬盘的使用率,其中CPU、内存使用率直接通过psutil库获取,硬盘使用率通过计算空闲空间与总空间的比值得到。
import psutil
# 获取CPU使用率
cpu_percent = psutil.cpu_percent(interval=1)
# 获取内存使用率
memory_percent = psutil.virtual_memory().percent
# 获取硬盘使用率
disk_percent = psutil.disk_usage('/').percent
3. 使用示例
为了方便测试,我们可以将上面的代码放入一个Python文件中,定时获取并打印出CPU、内存、硬盘使用率。
import psutil
import time
while True:
# 获取CPU使用率
cpu_percent = psutil.cpu_percent(interval=1)
# 获取内存使用率
memory_percent = psutil.virtual_memory().percent
# 获取硬盘使用率
disk_percent = psutil.disk_usage('/').percent
# 输出结果
print('CPU使用率:{}%,内存使用率:{}%,硬盘使用率:{}%'.format(cpu_percent, memory_percent, disk_percent))
# 休眠5秒
time.sleep(5)
运行上面的代码,我们就可以实时监控系统的CPU、内存、硬盘使用情况了。
二、监控端口开启情况
1. 安装socket模块
Python内置了socket模块,我们可以通过它来实现TCP和UDP端口的扫描,从而监控端口开启情况。
2. 扫描指定端口
下面的代码演示了如何扫描指定端口是否开启,其中我们通过socket的connect方法来检查端口是否允许连接。
import socket
def port_scan(host, port):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.settimeout(3)
try:
s.connect((host, port))
print('{}:{} is open.'.format(host, port))
s.close()
return True
except Exception:
print('{}:{} is closed.'.format(host, port))
s.close()
return False
3. 使用示例
为了方便测试,我们可以在代码中调用上面的port_scan方法,扫描本地的80、443端口。
port_scan('127.0.0.1', 80)
port_scan('127.0.0.1', 443)
运行上面的代码,我们就可以看到输出结果,显示了端口的开启情况。
总结
通过以上两个示例,我们可以实现对系统的CPU、内存、硬盘使用率和各个端口的开启情况进行实时监控。实际上,我们可以将以上代码整合到一个程序中,实现更为完善的系统监控功能。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python3监控windows,linux系统的CPU、硬盘、内存使用率和各个端口的开启情况详细代码实例 - Python技术站