python之psutil 采集linux系统信息
1、psutil简介
psutil是一个跨平台的 Python 库,提供了一种方便的方法来查询系统和进程的相关信息。
它可以用来获取 CPU、内存、磁盘、网络等系统级的数据,适合需要对系统性能进行监控和管理的开发工作。
五大主要功能:
CPU 信息:获取 CPU 使用率、核心数、频率等。
内存信息:获取系统内存使用情况,包括虚拟内存和物理内存。
磁盘信息:获取磁盘分区信息、使用情况。
网络信息:获取网络接口信息、网络连接状态等。
进程管理:获取系统上所有进程的信息,可以监控和管理进程。
2、官网
https://psutil.readthedocs.io/en/latest/
3、获取CPU信息
import psutil
# 获取 CPU 使用率
cpu_usage = psutil.cpu_percent(interval=1)
print(f"CPU 使用率: {cpu_usage}%")
# 获取CPU核心数
cpu_count = psutil.cpu_count(logical=True) # 获取逻辑核心数
print(f"CPU逻辑核心数: {cpu_count}")
`cpu_count()` 方法返回CPU的核心数量,`logical=True`表示返回逻辑核心数。
4、获取磁盘信息
import psutil
# 获取磁盘使用情况
disk_usage = psutil.disk_usage('/')
print(f"磁盘总大小: {disk_usage.total / (1024 ** 3):.2f} GB")
print(f"已使用: {disk_usage.used / (1024 ** 3):.2f} GB")
print(f"可用: {disk_usage.free / (1024 ** 3):.2f} GB")
print(f"使用率: {disk_usage.percent}%")
`disk_usage()` 方法用于获取磁盘的使用率,传入参数`'/'`表示根目录的磁盘使用情况。
# 获取分区信息
partitions = psutil.disk_partitions()
for partition in partitions:
print(f"设备: {partition.device}")
print(f"挂载点: {partition.mountpoint}")
print(f"文件系统类型: {partition.fstype}")
5、获取内存信息
import psutil
# 获取虚拟内存信息
virtual_memory = psutil.virtual_memory()
print(f"总内存: {virtual_memory.total / (1024 ** 2):.2f} MB")
print(f"已使用内存: {virtual_memory.used / (1024 ** 2):.2f} MB")
print(f"可用内存: {virtual_memory.available / (1024 ** 2):.2f} MB")
print(f"内存使用率: {virtual_memory.percent}%")
6、获取网络信息
import psutil
# 获取网络接口的信息
network_info = psutil.net_if_addrs()
print("网络接口信息:")
for interface, addr_list in network_info.items():
print(f"{interface}: {addr_list}")
net_io = psutil.net_io_counters()
print(f"发送字节数: {net_io.bytes_sent}")
print(f"接收字节数: {net_io.bytes_recv}")
connections = psutil.net_connections(kind='inet')
for conn in connections:
print(f"协议: {conn.type}, 本地地址: {conn.laddr}, 远程地址: {conn.raddr}")
7、获取进程信息
import psutil
# 获取所有进程信息
for proc in psutil.process_iter(['pid', 'name', 'username']):
print(proc.info)
# 查找特定进程
try:
p = psutil.Process(1234) # 假设进程ID为1234
print(f"进程名: {p.name()}")
print(f"进程状态: {p.status()}")
print(f"进程CPU时间: {p.cpu_times()}")
print(f"进程内存信息: {p.memory_info()}")
except psutil.NoSuchProcess:
print("该进程不存在")
# 退出进程
p.terminate()
print(f"进程{p.pid} 已终止")

浙公网安备 33010602011771号