python读取linux系统的cpu以及内存占用

news2024/11/21 1:36:19

直接贴代码

import subprocess

def get_system_stats():
    # 通过 shell 命令获取 CPU 使用率和内存使用率
    cpu_command = "top -bn1 | grep '%Cpu(s)' | awk '{print $2}'"
    memory_command = "free | grep Mem | awk '{print $3/$2 * 100.0}'"
    
    # 执行命令并获取输出结果
    cpu_result = subprocess.check_output(cpu_command, shell=True).decode().strip()
    memory_result = subprocess.check_output(memory_command, shell=True).decode().strip()
    
    # 转换结果为浮点数
    cpu_usage = float(cpu_result)
    memory_usage = float(memory_result)
    
    # 返回 CPU 使用率和内存使用率
    return cpu_usage, memory_usage

# 调用函数并获取结果
cpu_usage, memory_usage = get_system_stats()
print("CPU 使用率: ", cpu_usage)
print("内存使用率: ", memory_usage)

在上述示例中,get_system_stats 函数使用 subprocess 模块执行 shell 命令来获取系统的 CPU 使用率和内存使用率。通过 top 命令和 grepawk 进行过滤和提取相关信息,并将结果转换为浮点数后返回。

代码解释:

cpu_command = "top -bn1 | grep '%Cpu(s)' | awk '{print $2}'"

让我们逐步解释这个命令的每个部分:

  1. top -bn1: 这是 top 命令的参数,用于显示系统资源的实时使用情况。-b 表示以批处理模式运行,n1 表示只运行一次。

  2. grep '%Cpu(s)': 这是 grep 命令的参数,用于在命令的输出中筛选包含 %Cpu(s) 的行。%Cpu(s)top 命令输出中 CPU 使用率相关信息的标识。

  3. awk '{print $2}': 这是 awk 命令的参数,用于提取每行的第二个字段并进行打印。在这里,awk 命令将提取第二个字段,即 CPU 使用率的数值。

综合起来,这个命令的作用是运行 top 命令获取系统资源信息,并通过管道传递给 grep 命令进行筛选,然后再传递给 awk 命令提取 CPU 使用率的数值。最终,cpu_command 变量会保存这个完整的 shell 命令字符串。

在 Python 代码中,subprocess.check_output(cpu_command, shell=True) 的作用是执行这个 shell 命令,并将输出结果以字符串的形式返回。

 memory_command = "free | grep Mem | awk '{print $3/$2 * 100.0}'"

让我们逐步解释这个命令的每个部分:

  1. free: 这是 free 命令,用于显示系统内存使用情况。

  2. grep Mem: 这是 grep 命令的参数,用于筛选包含 "Mem" 的行,以过滤出与内存相关的信息。

  3. awk '{print $3/$2 * 100.0}': 这是 awk 命令的参数,用于计算内存使用率。它提取每行的第三个字段(已使用内存)和第二个字段(总内存),然后将其相除并乘以 100,得到内存使用率。

综合起来,这个命令的作用是运行 free 命令获取系统内存信息,并通过管道传递给 grep 命令进行筛选,然后再传递给 awk 命令计算内存使用率。最终,memory_command 变量会保存这个完整的 shell 命令字符串。

在 Python 代码中,subprocess.check_output(memory_command, shell=True) 的作用是执行这个 shell 命令,并将输出结果以字符串的形式返回。

请注意,上述代码是一个示例,你可以根据你的需求和具体的 Linux 系统进行适当的调整和改进。另外,需要确保你的 Python 环境中已经安装了相关的依赖和工具,以使 subprocess 模块能够正常工作。

结果如下:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/540934.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

鸿蒙Hi3861学习十六-Huawei LiteOS-M(Socket服务端)

一、简介 具体概念可以参考上一章内容:鸿蒙Hi3861学习十五-Huawei LiteOS-M(Socket客户端)_t_guest的博客-CSDN博客 WIFI学习一(socket介绍)_wifi socket_t_guest的博客-CSDN博客 二、API介绍 bind 函数功能&#xff1…

pdf怎么转换成jpg图片?转换方式说明

将PDF转换为JPG图片是一种常见的文件格式转换操作,通常用于在不同设备上查看和共享PDF文档。但是,大多数情况下,将PDF转换为JPG图片可能并不总是可行或有效的。在本文中,我们将讨论为什么不能将PDF转换为JPG图片,以及如…

了解设备健康报表的关键指标与分析方法

在现代工业领域中,设备健康报表是一项关键工具,通过收集和分析设备的运行数据,它提供了关于设备状态和性能的重要指标。设备健康报表对于企业的设备管理和维护决策至关重要。本文将介绍设备健康报表的关键指标,并提供解读和分析方…

苹果手机、电脑如何进行屏幕录制?苹果录屏功能在哪?

随着人们生活水平的提高,不少小伙伴都会选择苹果手机、苹果电脑作为主要的设备。因为使用苹果电脑进行办公,不仅仅能够提升效率,对于文件的安全性也是有一些保障的。那么,在使用苹果电脑的时候,如果需要有录屏的需求该…

【JAVA】this关键字和static关键字

目录 1.this关键字 2.static关键字 容易混淆的问题 1.this关键字 一个对象一个this。this是一个变量,是一个关键字,是一个引用。this保存当前对象的内存地址,指向自身。所以,严格意义上来说,this代表的就是“当前对象…

Avada学习之-如何加入谷歌地图

如何正确设置谷歌地图 在给Wordpress网站配置谷歌地图时,常常会出现谷歌地图无法显示的问题。具体提示为Oops! something went wrong,如下图。出现这种问题有如下原因。 内容 隐藏 一、地址不正确 二、API 没填 三、插件冲突 一、地址不正确 很多…

iOS正确获取图片参数深入探究及CGImageRef的使用

一 图片参数的正确获取 先拿一张图片作为测试使用 图片参数如下: 图片的尺寸为: -宽1236个像素点 -高748个像素点 -色彩空间为RGB -描述文件为彩色LCD -带有Alpha通道 请记住这几个参数,待会儿我们演示如何正确获取。 将这张图片分别放在…

光纤衰减器作用及使用说明

在光纤通信中,光信号的强度过大或过小都会对信号的传输和接收产生不良的影响,因此光衰减器在光通信系统中起到了重要的作用。那什么是光衰减器呢?它又有什么作用呢?下面跟着小易一起来了解一下吧! 一、什么是光纤衰减…

APP自动化测试工具的作用和特点

随着移动应用的迅速发展,APP的自动化测试工具变得越来越重要。APP自动化测试工具可以帮助开发者在应用程序的不同平台上执行测试,从而检测和确保应用程序的完整性、稳定性和可靠性。下面将介绍APP自动化测试工具的作用和特点。 一、作用 提高测试效率&am…

Android自定义控件——控件的测量和绘制

控件的测量和绘制 控件架构setContentView()MeasureSpecViewView的测量View的绘制 ViewGroupViewGroup的测量ViewGroup的绘制 自定义View对现有控件进行扩展案例一:添加背景案例二:文字闪动 创建复合控件重写View实现全新控件案例一:弧线展示…

FLEXPART--空气块轨迹-扩散模式

模式简介: FLEXPART(Flexible Particle Dispersion Model)模式是由挪威大气研究所(Norwegian Institute for Air Research)和德国慕尼黑工业大学(Technical University of Munich)联合开发的空气块轨迹-扩散模式, 其通过计算区域内所有气块的运动轨迹进…

PLE - 多任务模型(腾讯)

文章目录 1、动机2、模型结构3、代码实现细节: Progressive Layered Extraction (PLE): A Novel Multi-Task Learning (MTL) Model for Personalized Recommendations论文发表在 RecSys-2020, best paper。ple主要缓解了mtl里两大问题:负迁移…

如何在海量、庞杂、混合的数据中发现价值?

数字时代,数据上升为国家战略,数据成为重要的生产要素和资产,得到了越来越多企业的重视,也成为企业数字化转型的重要抓手。据IDC中国预测,2025年中国大数据生产量有望增长至48.6ZB。 随着越来越大的数据量&#xff0c…

【C++从0到王者】第六站:类和对象(下)

文章目录 一、再谈构造函数1.构造函数体赋值2.初始化列表1>初始化列表的使用2>初始化列表的注意事项 3.explicit关键词 二、static成员1.如何统计当前程序中变量的个数2.static的特性3.从1加到n4.设计一个类,只能在栈或者堆上开辟空间 三、友元1.友元函数2.友…

一个简化、落地的实时数据仓库解决方案

从传统的经验来讲,数据仓库有一个很重要的功能是记录数据变化历史。通常,数据仓库都希望从业务上线的第一天开始有数据,然后一直记录到现在。但实时处理技术,又是强调当前处理状态的一门技术,所以当这两个相互对立的方…

聚合数据证件识别接口-基于PHP示例代码

1、开通接口 以下代码示例基于聚合数据提供的证件识别接口,使用前需要先注册申请本接口,获得请求密钥key。 接口文档地址:https://www.juhe.cn/docs/api/id/153 2、功能介绍 通过自动识别的方式获取常规证件文字内容,免去用户…

react函数式组件转化为string---renderToString

需求 使用aggrid的过程中,某个自定义的图标需要传dom的字符串。 但在react的开发中,一般都是组件的概念(ReactNode,JSX.Element) 因此需要一个方法将dom组件转化为字符串 收获 找到了官网的API——renderToString 作…

虚拟主机部署ssl证书(https)流程

注意事项: 1、域名要做别名解析指向二级域名 2、证书已经申请完成,其他公司的证书要下载导入到西部数码。 虚拟主机部署教程如下: 部署证书 首先要将域名绑定到主机上,在主机控制面板找到【SSL部署】按钮。 在西部数码申请过证…

FFmpeg 媒体文件播放 格式变化流程简述

例如,要播放一个 MP4 文件,这个文件要经过啥呢? 一个 MP4 文件中包含了:视频压缩数据流(如H.264、H.265)和音频压缩数据(如aac、MP3) 首先需要经过解码成为原始数据,视频…

数据库原理及应用上机实验一

✨作者:命运之光 ✨专栏:数据库原理及应用上机实验报告整理 目录 ✨一、实验目的和要求 ✨二、实验内容与步骤 🍓🍓前言: 数据库原理及应用上机实验报告的一个简单整理后期还会不断完善🍓🍓…