python之psutil 采集linux系统信息
1.Python之paramiko模块2.python之 sys、os、subprocess、shutil 模块
3.python之psutil 采集linux系统信息
4.python 获取多个多级子目录及其子文件1、psutil简介
psutil是一个跨平台的 Python 库,提供了一种方便的方法来查询系统和进程的相关信息。
它可以用来获取 CPU、内存、磁盘、网络等系统级的数据,适合需要对系统性能进行监控和管理的开发工作。
五大主要功能:
CPU 信息:获取 CPU 使用率、核心数、频率等。
内存信息:获取系统内存使用情况,包括虚拟内存和物理内存。
磁盘信息:获取磁盘分区信息、使用情况。
网络信息:获取网络接口信息、网络连接状态等。
进程管理:获取系统上所有进程的信息,可以监控和管理进程。
2、官网
1 | https: / / psutil.readthedocs.io / en / latest / |
3、获取CPU信息
1 2 3 4 5 6 7 8 9 10 | 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、获取磁盘信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 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、获取内存信息
1 2 3 4 5 6 7 8 | 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、获取网络信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | 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、获取进程信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | 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} 已终止" ) |