首页 > 系统相关 >python之psutil 采集linux系统信息

python之psutil 采集linux系统信息

时间:2024-12-25 17:53:38浏览次数:3  
标签:usage 获取 python 信息 psutil linux print CPU

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

  

 

标签:usage,获取,python,信息,psutil,linux,print,CPU
From: https://www.cnblogs.com/dgp-zjz/p/18631115

相关文章

  • 使用python脚本,批量修改mysql数据库表字段名称
    前提:搭建python相关环境目的:将驼峰式命名或混合大小写的字段名转换为下划线分隔的小写字段名。例如:UserName->user_name,userName->user_name一、新建脚本update_table_column_names.pyimportpymysqlimportreimportsysdefto_snake_case(name):s1......
  • python 升级
    `1.cd/usr/src#进入到这个目录wgetwgethttps://www.python.org/ftp/python/3.9.1/Python-3.9.1.tgz#进行安装包的安装tar-xzfPython-3.9.1.tgz#进行解压cdPython-3.9.1#进入并进行编译安装./configure如果没有升级过Python就需要安装Python相关的依......
  • 从互联网上下载文件python代码
    importrequestsimporttracebackimportosdefdownload_file(url,filename):"""将链接中的数据存储入文件中。Args:url:链接。filename:文件路径名。Raises:KeyboardInterrupt:用户按^C引发异常。Exception:发生异......
  • nmon监控在linux环境下的安装
    nmon下载官网:https://nmon.sourceforge.io/pmwiki.php?n=Site.Download 一、前言Nmon(Nigel’sMonitor)是由IBM提供、免费监控AIX系统与Linux系统资源的工具。该工具可将服务器系统资源耗用情况收集起来并输出一个特定的文件,并可利用excel分析工具(nmonanalyser)进......
  • Linux离线安装Docker
    Linux离线安装Docker查看服务器架构信息uname-m下载安装包并传输到指定服务器访问https://download.docker.com/linux/static/stable/下载对应服务器架构下的压缩包,架构目录下有对应的docker版本解压并拷贝命令#解压安装包tar-zxvfdocker-aarch64-24.0.5.tgz#将......
  • python tqdm 进度条尝试
    起因上期博客(https://www.cnblogs.com/timmoc/p/18630509)不是研究着发现没有进度条还是太不直观了吗那今天来整个进度条。好的本篇随笔到此结束不是这也太水了吧,试着按到上篇博客里面?只需要修改worker的代码就好了。不是不是,等等,我说停停。合着这个进度条是每次打印......
  • Linux常用选项之tr命令详解
    tr(translate)是Linux系统中一个非常实用的命令行工具,主要用于字符转换或删除操作。它从标准输入读取数据,执行指定的转换处理,并将结果输出到标准输出。tr命令的主要功能包括但不限于大小写转换、删除特定字符、压缩重复字符等。功能与特性字符替换:可以将一组字符替换成另一......
  • Python面试手册:基础知识点合集与背记指南
    主要内容概要第1章走进PythonPython是一种高级编程语言,以其简洁明了的语法和强大的功能而闻名。本章将深入探讨Python的基本概念,包括其设计哲学、特点以及与其他编程语言的区别。我们将回顾Python的历史背景,了解其创始人GuidovanRossum如何创造这门语言,并探讨它如何迅......
  • 【华为OD-E卷-最小调整顺序次数、特异性双端队列 100分(python、java、c++、js、c)】
    【华为OD-E卷-最小调整顺序次数、特异性双端队列100分(python、java、c++、js、c)】题目有一个特异性的双端队列,该队列可以从头部或尾部添加数据,但是只能从头部移出数据。小A依次执行2n个指令往队列中添加数据和移出数据。其中n个指令是添加数据(可能从头部添加、也可能从......
  • 【华为OD-E卷-取出尽量少的球 100分(python、java、c++、js、c)】
    【华为OD-E卷-取出尽量少的球200分(python、java、c++、js、c)】题目某部门开展FamilyDay开放日活动,其中有个从桶里取球的游戏,游戏规则如下:有N个容量一样的小桶等距排开,且每个小桶都默认装了数量不等的小球,每个小桶装的小球数量记录在数组bucketBallNums中,游戏开......