Python运维开发之psutil库的使用详解


Posted in Python onOctober 18, 2018

介绍

psutil能够轻松实现获取系统运行的进程和系统利用率。

导入模块

import psutils

获取系统性能信息

CPU信息

使用cpu_times()方法获取CPU的完整信息:

>>> psutil.cpu_times()

获取单项数据,例如用户user的CPU时间比:

>>> psutil.cpu_times().user

获取CPU的个数:

>>> psutil.cpu_count() # 默认logical=True,获取逻辑个数
>>> psutil.cpu_count(logical=False) # 获取CPU的物理个数

内存信息

获取物理内存总大小和已使用内存:

>>> mem = psutil.virtual_memory()
>>> mem   # 显示所有的参数
>>> mem.total # 总内存
>>> mem.used  # 已使用内存
>>> mem.free  # 获取空闲内存数 
>>> psutil.swap_memory() # 获取SWAP分区信息

磁盘信息

获取磁盘完整信息:

>>> psutil.disk_partitions()

获取分区的使用情况:

>>> psutil.disk_usage('C:/') # 里面参数为所在磁盘分区

获取硬盘总的IO个数:

>>> psutil.disk_io_counters()
>>> psutil.disk_io_counters(perdisk=True) # 获取单个分区的IO个数

网络信息

获取网络总的IO信息:

>>> psutil.net_io_counters()
>>> psutil.net_io_counters(pernic=True) # 输出单个网络接口的IO信息

其他系统信息

返回当前登录系统的用户信息:

>>> psutil.users()

获取开机时间:

>>> psutil.boot_time() # 以Linux时间戳格式返回
# 如果想要转换成自然时间格式:
>>> datetime.datetime.fromtimestamp(psutil.boot_time()).strftime("%Y-%m-%d %H:%M:%S")

进程管理

进程信息

列出所有进程PID

>>> psutil.pids()

实例化进程对象

>>> p = psutil.Process(716)
>>> p.name() # 进程名
>>> p.exe() # 进程bin路径
>>> p.cwd() # 进程工作目录的绝对路径
>>> p.status() # 进程状态
>>> p.create_time() # 进程创建时间
>>> p.uids() # 进程uid信息
>>> p.gids() # 进程gid信息
>>> p.cpu_times() # 进程CPU时间信息
>>> p.cpu_affinity() # get进程的亲和度
>>> p.memory_percent() # 进程内存使用率
>>> p.num_threads() # 进程开启的线程数

popen类的使用

popen类可以获取用户启动的应用程序进程信息。

>>> p = putil.Popen(["/usr/bin/python","-c","print('Hello')"],stdout=subprocess.PIPE)
>>> p.name()
>>> p.username() # 创建进程的用户
>>> p.communicate()
('hello\n',None)
>>> p.cpu_times() # 得到进程运行的CPU时间

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python通过urllib2获取带有中文参数url内容的方法
Mar 13 Python
Python实现公历(阳历)转农历(阴历)的方法示例
Aug 22 Python
Python探索之ModelForm代码详解
Oct 26 Python
python通过socket实现多个连接并实现ssh功能详解
Nov 08 Python
Python实现按当前日期(年、月、日)创建多级目录的方法
Apr 26 Python
Python异常处理操作实例详解
Aug 28 Python
python爬取酷狗音乐排行榜
Feb 20 Python
python画图常规设置方式
Mar 05 Python
浅谈python的elementtree模块处理中文注意事项
Mar 06 Python
Django中的session用法详解
Mar 09 Python
python+opencv实现移动侦测(帧差法)
Mar 20 Python
Python 如何利用ffmpeg 处理视频素材
Nov 27 Python
python实现自动登录后台管理系统
Oct 18 #Python
python 对给定可迭代集合统计出现频率,并排序的方法
Oct 18 #Python
python实现简单登陆系统
Oct 18 #Python
Python字典中的键映射多个值的方法(列表或者集合)
Oct 17 #Python
python字典值排序并取出前n个key值的方法
Oct 17 #Python
Python中创建二维数组
Oct 17 #Python
解决Python获取字典dict中不存在的值时出错问题
Oct 17 #Python
You might like
ThinkPHP写数组插入与获取最新插入数据ID实例
2014/11/03 PHP
PHP+redis实现添加处理投票的方法
2015/11/14 PHP
ECSHOP完美解决Deprecated: preg_replace()报错的问题
2016/05/17 PHP
基于PHP+Mysql简单实现了图书购物车系统的实例详解
2020/08/06 PHP
javascript 面向对象,实现namespace,class,继承,重载
2009/10/29 Javascript
Js判断CSS文件加载完毕的具体实现
2014/01/17 Javascript
JavaScript简介
2015/02/15 Javascript
js实现可折叠展开的手风琴菜单效果
2015/09/07 Javascript
浅析javascript的return语句
2015/12/15 Javascript
bootstrap布局中input输入框右侧图标点击功能
2016/05/16 Javascript
从零学习node.js之模块规范(一)
2017/02/21 Javascript
详解React Native 采用Fetch方式发送跨域POST请求
2017/11/15 Javascript
Nodejs 和 Electron ubuntu下快速安装过程
2018/05/04 NodeJs
Element-ui tree组件自定义节点使用方法代码详解
2018/09/17 Javascript
nodejs对mongodb数据库的增加修删该查实例代码
2020/01/05 NodeJs
[00:48]食人魔魔法师至宝“金鹏之幸”全新模型和自定义特效展示
2019/12/19 DOTA
[01:35:13]DOTA2-DPC中国联赛 正赛 DLG vs PHOENIX BO3 第一场 1月18日
2021/03/11 DOTA
Python实现将doc转化pdf格式文档的方法
2018/01/19 Python
python最长回文串算法
2018/06/04 Python
华为校园招聘上机笔试题 扑克牌大小(python)
2020/04/22 Python
详解Python中的正斜杠与反斜杠
2019/08/09 Python
Python 正则表达式爬虫使用案例解析
2019/09/23 Python
如何通过Django使用本地css/js文件
2020/01/20 Python
PyQt使用QPropertyAnimation开发简单动画
2020/04/02 Python
解决Python在导入文件时的FileNotFoundError问题
2020/04/10 Python
python如何解析复杂sql,实现数据库和表的提取的实例剖析
2020/05/15 Python
python 实现一个简单的线性回归案例
2020/12/17 Python
巧用CSS3的calc()宽度计算做响应模式布局的方法
2018/03/22 HTML / CSS
波兰品牌鞋履在线商店:Eastend.pl
2020/01/11 全球购物
你在项目中用到了xml技术的哪些方面?如何实现的?
2014/01/26 面试题
服装创业计划书范文
2014/02/05 职场文书
《蓝色的树叶》教学反思
2014/02/24 职场文书
教师考核评语
2014/04/28 职场文书
责任书格式
2015/01/29 职场文书
读《钢铁是怎样炼成的》有感:百炼方成钢
2019/11/05 职场文书
使用Golang的channel交叉打印两个数组的操作
2021/04/29 Golang