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自动重试HTTP连接装饰器
Apr 28 Python
python协程用法实例分析
Jun 04 Python
Python验证企业工商注册码
Oct 25 Python
详解Python发送邮件实例
Jan 10 Python
Django1.9 加载通过ImageField上传的图片方法
May 25 Python
python爬虫实例详解
Jun 19 Python
Python动态参数/命名空间/函数嵌套/global和nonlocal
May 29 Python
python下载库的步骤方法
Oct 12 Python
python实现画循环圆
Nov 23 Python
Python操作Sqlite正确实现方法解析
Feb 05 Python
python中pivot()函数基础知识点
Jan 03 Python
详解Python如何批量采集京东商品数据流程
Jan 22 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下正则来匹配dede模板标签的代码
2010/08/21 PHP
PHP递归调用数组值并用其执行指定函数的方法
2015/04/01 PHP
PHP date函数常用时间处理方法
2015/05/11 PHP
Laravel路由设定和子路由设定实例分析
2016/03/30 PHP
PHP命名空间namespace的定义方法详解
2017/03/29 PHP
php实现socket推送技术的示例
2017/12/20 PHP
jQuery checkbox全选/取消全选实现代码
2009/11/14 Javascript
缓动函数requestAnimationFrame 更好的实现浏览器经动画
2012/12/07 Javascript
使用mini-define实现前端代码的模块化管理
2014/12/25 Javascript
js实现精美的图片跟随鼠标效果实例
2015/05/16 Javascript
JavaScript匿名函数之模仿块级作用域
2015/12/12 Javascript
从重置input file标签中看jQuery的 .val() 和 .attr(“value”) 区别
2016/06/12 Javascript
浅谈JavaScript事件绑定的常用方法及其优缺点分析
2016/11/01 Javascript
Vue.js第四天学习笔记
2016/12/02 Javascript
详解nodejs express下使用redis管理session
2017/04/24 NodeJs
Vue二次封装axios为插件使用详解
2018/05/21 Javascript
jQuery实现简单的Ajax调用功能示例
2019/02/15 jQuery
可能被忽略的一些JavaScript数组方法细节
2019/02/28 Javascript
vue项目打包为APP,静态资源正常显示,但API请求不到数据的操作
2020/09/12 Javascript
[04:03]DOTA2肉山黑名单梦之声 风暴之灵中文配音鉴赏
2013/07/03 DOTA
用Django写天气预报查询网站
2018/10/21 Python
Python生成一个迭代器的实操方法
2019/06/18 Python
django 自定义filter 判断if var in list的例子
2019/08/20 Python
python制作微博图片爬取工具
2021/01/16 Python
美国最大的骑马用品零售商:HorseLoverZ
2017/01/12 全球购物
加拿大最大的相机店:Henry’s
2017/05/17 全球购物
学生就业推荐信
2013/11/13 职场文书
美德少年事迹材料
2014/01/23 职场文书
公司中层干部的自我评价分享
2014/03/01 职场文书
天网工程实施方案
2014/03/26 职场文书
民族精神月活动总结
2014/08/28 职场文书
宣传稿格式范文
2015/07/23 职场文书
2016年员工年度考核评语
2015/12/02 职场文书
描述鲁迅的名言整理,一生受用
2019/08/08 职场文书
详解Java实践之建造者模式
2021/06/18 Java/Android
win10壁纸在哪个文件夹 win10桌面背景图片文件位置分享
2022/08/05 数码科技