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单链表实现代码实例
Nov 21 Python
利用Python抓取行政区划码的方法
Nov 28 Python
Python实现Windows和Linux之间互相传输文件(文件夹)的方法
May 08 Python
python进程管理工具supervisor的安装与使用教程
Sep 05 Python
python之DataFrame实现excel合并单元格
Feb 22 Python
在Python中实现shuffle给列表洗牌
Nov 08 Python
Django中如何使用sass的方法步骤
Jul 09 Python
在pytorch中实现只让指定变量向后传播梯度
Feb 29 Python
python进行参数传递的方法
May 12 Python
Java如何基于wsimport调用wcf接口
Jun 17 Python
Python word文本自动化操作实现方法解析
Nov 05 Python
python工具快速为音视频自动生成字幕(使用说明)
Jan 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
php PDO中文乱码解决办法
2009/07/20 PHP
全世界最小的php网页木马一枚 附PHP木马的防范方法
2009/10/09 PHP
php 伪造本地文件包含漏洞的代码
2011/11/03 PHP
PHP图片上传代码
2013/11/04 PHP
php实现映射操作实例详解
2019/10/02 PHP
键盘 keycode的值 javascript时触发事件时很有用的要素
2009/11/02 Javascript
获取body标签的两种方法
2011/10/13 Javascript
JavaScript 产生不重复的随机数三种实现思路
2012/12/13 Javascript
js遍历子节点子元素附属性及方法
2014/08/19 Javascript
js实现的类似于asp数据字典的数据类型代码实例
2014/09/03 Javascript
javascript制作的简单注册模块表单验证
2015/04/13 Javascript
jquery实现可旋转可拖拽的文字效果代码
2016/01/27 Javascript
jq实现左滑显示删除按钮,点击删除实现删除数据功能(推荐)
2016/08/23 Javascript
Bootstrap基本插件学习笔记之模态对话框(16)
2016/12/08 Javascript
javascript少儿编程关于返回值的函数内容
2018/05/27 Javascript
微信小程序 扭蛋抽奖机css3动画实现详解
2019/07/19 Javascript
taro 实现购物车逻辑的实例代码
2020/06/05 Javascript
基于VUE实现判断设备是PC还是移动端
2020/07/03 Javascript
[04:19]完美世界携手游戏风云打造 卡尔工作室模型介绍篇
2013/04/24 DOTA
Python 如何访问外围作用域中的变量
2016/09/11 Python
python中logging模块的一些简单用法的使用
2019/02/22 Python
解决python 虚拟环境删除包无法加载的问题
2020/07/13 Python
canvas绘制表情包的示例代码
2018/07/09 HTML / CSS
HTML5 的新的表单元素(datalist/keygen/output)使用介绍
2013/07/19 HTML / CSS
美国最大的骑马用品零售商:HorseLoverZ
2017/01/12 全球购物
美国婴儿和儿童家具网上商店:ABaby.com
2018/07/02 全球购物
应届生高等护理求职信
2013/10/12 职场文书
新闻系毕业生推荐信
2013/11/16 职场文书
医院辞职信范文
2014/01/17 职场文书
货物运输服务质量承诺书
2014/05/29 职场文书
社区志愿者培训方案
2014/06/10 职场文书
2015会计试用期工作总结
2014/12/12 职场文书
组织生活会发言材料
2014/12/15 职场文书
承诺函范文
2015/01/21 职场文书
Python time库的时间时钟处理
2021/05/02 Python
Python Django项目和应用的创建详解
2021/11/27 Python