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} 已终止")

  

 

posted @ 2024-12-25 17:48  凡人半睁眼  阅读(4)  评论(0编辑  收藏  举报