Linux下使用python调用top命令获得CPU利用率


Posted in Python onMarch 10, 2015

本文定位:想通过python调用top命令获取cpu使用率但暂时没有思路的情况。
如果单纯为了获得cpu的利用率,通过top命令重定向可以轻松实现,命令如下:

top -bi > cpuHistory.log


top -bi | tee  cpuHistory.log

这个就不解释了,不懂的朋友查询下top的帮助文档。这里要实现的是通过python调用top命令,并获得cpu的利用率信息。
用过popen的朋友很快就能想到类似如下的代码(这个是我第一次写的代码,*_*):
#! /usr/bin/python
import os,time
time2sleep = 1.5

while True:

        print os.popen('top -bi -n 1').read().split('\n')[2]

        time.sleep(time2sleep)

原理看起来没错,可是跑起来就出问题了:cpu的idle值一直不变!!!
原因在于执行的命令“top -bi -n 1”:单独执行这个命令,你会发现输出结果中cpu的idle值就是一直不变的。
所以不能这样写……
在终端执行“top -bi -n 2”命令,你会发现第二个值每次都在变化,这个就是我们想要结果。
考虑到时间问题,命令这样写会更好:“top -bi -n 2 -d 0.02”
代码如下:

#! /usr/bin/python

'''

   File      : cpuRate.py

   Author    : Mike

   E-Mail    : Mike_Zhang@live.com

 '''

import os,time
time2sleep = 2.5

while True:

        print int(time.time()),

        print os.popen('top -bi -n 2 -d 0.02').read().split('\n\n\n')[1].split('\n')[2]

        time.sleep(time2sleep)

执行效果如下:

$ ./cpuRate.py 

1328109437 Cpu(s): 10.0%us, 20.0%sy,  0.0%ni, 70.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st

1328109441 Cpu(s):  0.0%us, 16.7%sy,  0.0%ni, 83.3%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st

1328109444 Cpu(s):  0.0%us, 16.7%sy,  0.0%ni, 83.3%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st

1328109447 Cpu(s): 12.5%us, 12.5%sy,  0.0%ni, 75.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st

好,就这些了,希望对你有帮助。

Python 相关文章推荐
Python实现根据指定端口探测服务器/模块部署的方法
Aug 25 Python
Python import自定义模块方法
Feb 12 Python
python使用win32com库播放mp3文件的方法
May 30 Python
python中pandas.DataFrame对行与列求和及添加新行与列示例
Mar 12 Python
Python入门必须知道的11个知识点
Mar 21 Python
pycharm 主题theme设置调整仿sublime的方法
May 23 Python
python redis 删除key脚本的实例
Feb 19 Python
Python3 log10()函数简单用法
Feb 19 Python
详解python中eval函数的作用
Oct 22 Python
python实现拼图小游戏
Feb 22 Python
python中常用的数据结构介绍
Jan 12 Python
Python列表的索引与切片
Apr 07 Python
Python获取DLL和EXE文件版本号的方法
Mar 10 #Python
Python接收Gmail新邮件并发送到gtalk的方法
Mar 10 #Python
Python创建xml的方法
Mar 10 #Python
Python实现生成简单的Makefile文件代码示例
Mar 10 #Python
Python和GO语言实现的消息摘要算法示例
Mar 10 #Python
Windows和Linux下使用Python访问SqlServer的方法介绍
Mar 10 #Python
Python脚本实现代码行数统计代码分享
Mar 10 #Python
You might like
php验证邮箱和ip地址最简单方法汇总
2015/10/30 PHP
Fleaphp常见函数功能与用法示例
2016/11/15 PHP
PHP实现的策略模式示例
2019/03/20 PHP
javascript编程起步(第七课)
2007/02/27 Javascript
jQuery :first选择器使用介绍
2013/08/09 Javascript
JS实现字体选色板实例代码
2013/11/20 Javascript
js 定时器setTimeout无法调用局部变量的解决办法
2013/11/28 Javascript
js生成缩略图后上传并利用canvas重绘
2014/05/15 Javascript
jQuery控制DIV层实现由大到小,由远及近动画变化效果
2015/10/09 Javascript
js改变html的原有内容实现方法
2016/10/05 Javascript
NodeJs测试框架Mocha的安装与使用
2017/03/28 NodeJs
JavaScript实现的DOM树遍历方法详解【二叉DOM树、多叉DOM树】
2018/05/07 Javascript
vue中动态设置meta标签和title标签的方法
2018/07/11 Javascript
layui表单验证select下拉框实现验证的方法
2019/09/05 Javascript
JavaScript 接口原理与用法实例详解
2020/05/12 Javascript
VUE中setTimeout和setInterval自动销毁案例
2020/09/07 Javascript
微信小程序实现文件预览
2020/10/22 Javascript
[13:39]2014 DOTA2华西杯精英邀请赛 5 25 NewBee VS DK第一场
2014/05/26 DOTA
Python插件virtualenv搭建虚拟环境
2017/11/20 Python
django模型层(model)进行建表、查询与删除的基础教程
2017/11/21 Python
通过python+selenium3实现浏览器刷简书文章阅读量
2017/12/26 Python
Python cookbook(数据结构与算法)字典相关计算问题示例
2018/02/18 Python
django 文件上传功能的相关实例代码(简单易懂)
2020/01/22 Python
Python搭建Keras CNN模型破解网站验证码的实现
2020/04/07 Python
python实现数字炸弹游戏
2020/07/17 Python
李宁官方网店:中国运动品牌
2017/11/02 全球购物
Notino希腊:购买香水和美容产品
2019/07/25 全球购物
Smilodox官方运动服装店:从运动服到健身配件
2020/08/27 全球购物
老教师工作总结的自我评价
2013/09/27 职场文书
建筑设计师岗位职责
2013/11/18 职场文书
专科文秘应届生求职信
2013/11/18 职场文书
法学专业本科生自荐信范文
2013/12/17 职场文书
活动策划邀请函
2014/02/06 职场文书
打架检讨书
2015/01/27 职场文书
聊聊CSS粘性定位sticky案例解析
2022/06/01 HTML / CSS
el-form每行显示两列底部按钮居中效果的实现
2022/08/05 HTML / CSS