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操作字典类型的常用方法(推荐)
May 16 Python
谈谈如何手动释放Python的内存
Dec 17 Python
python实现稀疏矩阵示例代码
Jun 09 Python
Python将多个excel表格合并为一个表格
Feb 22 Python
Python读取YUV文件,并显示的方法
Dec 04 Python
opencv实现静态手势识别 opencv实现剪刀石头布游戏
Jan 22 Python
深入解析python中的实例方法、类方法和静态方法
Mar 11 Python
Python生成MD5值的两种方法实例分析
Apr 26 Python
ZABBIX3.2使用python脚本实现监控报表的方法
Jul 02 Python
python range实例用法分享
Feb 06 Python
浅谈keras 的抽象后端(from keras import backend as K)
Jun 16 Python
python 检测nginx服务邮件报警的脚本
Dec 31 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
当海贼王变成JOJO风
2020/03/02 日漫
php 静态变量的初始化
2009/11/15 PHP
从手册去理解分析PHP session机制
2011/07/17 PHP
php截取后台登陆密码的代码
2012/05/05 PHP
Symfony实现行为和模板中取得request参数的方法
2016/03/17 PHP
如何优雅的使用 laravel 的 validator验证方法
2018/11/11 PHP
Laravel jwt 多表(多用户端)验证隔离的实现
2019/12/18 PHP
laravel框架路由分组,中间件,命名空间,子域名,路由前缀实例分析
2020/02/18 PHP
Javascript 面向对象 对象(Object)
2010/05/13 Javascript
jquery中dom操作和事件的实例学习-表单验证
2011/11/30 Javascript
jQuery调取jSon数据并展示的方法
2015/01/29 Javascript
JQuery select(下拉框)操作方法汇总
2015/04/15 Javascript
jQuery动态创建元素以及追加节点的实现方法
2016/10/20 Javascript
Bootstrap DateTime Picker日历控件简单应用
2017/03/25 Javascript
jQuery表单验证之密码确认
2017/05/22 jQuery
Javascript中的this,bind和that使用实例
2019/12/05 Javascript
js实现直播点击飘心效果
2020/08/19 Javascript
Python实现的检测web服务器健康状况的小程序
2014/09/17 Python
Django中URL视图函数的一些高级概念介绍
2015/07/20 Python
Python中死锁的形成示例及死锁情况的防止
2016/06/14 Python
Python给你的头像加上圣诞帽
2018/01/04 Python
Python使用smtp和pop简单收发邮件完整实例
2018/01/09 Python
对pyqt5中QTabWidget的相关操作详解
2019/06/21 Python
python多线程http压力测试脚本
2019/06/25 Python
pandas 时间格式转换的实现
2019/07/06 Python
解决python 读取excel时 日期变成数字并加.0的问题
2019/10/08 Python
Python PyInstaller库基本使用方法分析
2019/12/12 Python
Python-numpy实现灰度图像的分块和合并方式
2020/01/09 Python
修复iPhone的safari浏览器上submit按钮圆角bug
2012/12/24 HTML / CSS
HTML5中如何显示视频呢 HTML5视频播放demo
2013/06/08 HTML / CSS
美国乡村商店:Plow & Hearth
2016/09/12 全球购物
优秀员工演讲稿
2014/05/19 职场文书
会计实训报告范文
2014/11/04 职场文书
放弃遗产继承公证书
2015/01/26 职场文书
三好学生竞选稿
2015/11/21 职场文书
MySQL 不等于的三种使用及区别
2021/06/03 MySQL