python psutil 获取命令历史_python之psutil

python psutil 获取命令历史_python之psutilpsutil=processandsystemutilities,psutil是个跨平台库,能够轻松实现获取系统运行的进程和系统利用率,包括CPU、内存、磁盘、网络等信息。Linux系统下的安装pipinstallpsutil现在开始看看它的使用一cpu#查看逻辑cpu的个数>>>psutil.cpu_count()2#查看物理cpu的个数>>&g…

大家好,又见面了,我是你们的朋友全栈君。

psutil = process and system utilities,

psutil是个跨平台库,能够轻松实现获取系统运行的进程和系统利用率,包括CPU、内存、磁盘、网络等信息。

Linux系统下的安装

pip install  psutil

现在开始看看它的使用

一 cpu

#查看逻辑cpu的个数

>>> psutil.cpu_count()

2

#查看物理cpu的个数

>>> psutil.cpu_count(logical=False)

2

>>> psutil.cpu_times_percent() #cpu的总使用情况

scputimes(user=0.0, nice=0.0, system=0.1, idle=99.9, iowait=0.0, irq=0.0, softirq=0.0, steal=0.0, guest=0.0, guest_nice=0.0)

>>> psutil.cpu_times_percent(percpu=True) #每个cpu的使用情况

[scputimes(user=0.0, nice=0.0, system=0.1, idle=99.9, iowait=0.0, irq=0.0, softirq=0.0, steal=0.0, guest=0.0, guest_nice=0.0),

scputimes(user=0.0, nice=0.0, system=0.1, idle=99.9, iowait=0.0, irq=0.0, softirq=0.0, steal=0.0, guest=0.0, guest_nice=0.0)]

>>> psutil.cpu_percent() #cpu的使用率

0.1

#要查看cpu的负载呢,我们还是使用其他的命令吧

>>> import os

>>> os.getloadavg()

(0.01, 0.06, 0.06)

二 内存

#查看系统缓存的信息

>>> psutil.swap_memory()

sswap(total=536866816, used=0, free=536866816, percent=0.0, sin=0, sout=0)

>>> psutil.swap_memory().total #单位是字节

536866816

>>> psutil.swap_memory().total/1024 #swap总大小,以kb单位表示

524284

>>> psutil.swap_memory().free/1024 #空闲swap大小,以kb单位表示

524284

#统计内存使用情况

##############总内存 ,使用的,空闲 ,使用百分比,buffers ,cached 单位是字节

>>> for i in [‘total’,’used’,’free’,’percent’,’buffers’,’cached’]:

… ret=getattr(psutil.virtual_memory(),i)

… print(ret)

1514450944

227557376

852000768

25.5

3215360

431677440

三 磁盘

#获取磁盘信息

>>> psutil.disk_partitions()

[sdiskpart(device=’/dev/sda3′, mountpoint=’/’, fstype=’xfs’, opts=’rw,seclabel,relatime,attr2,inode64,noquota’),

sdiskpart(device=’/dev/sda1′, mountpoint=’/boot’, fstype=’xfs’, opts=’rw,seclabel,relatime,attr2,inode64,noquota’)]

#获取挂载点的分区信息,通过device去的话显示有问题

>>> psutil.disk_usage(“/boot”)

sdiskusage(total=206213120, used=117985280, free=88227840, percent=57.2)

>>> psutil.disk_usage(“/boot”).percent

57.2

四 网卡

#获取网卡ens33的IP地址

>>> psutil.net_if_addrs()[‘ens33’][0].address

‘192.168.137.16’

#子网掩码

>>> psutil.net_if_addrs()[‘ens33’][0].netmask

‘255.255.255.0’

#查看网卡是否开启

>>> psutil.net_if_stats()[‘ens33’].isup

True

#查看网卡的速率,命令有ifconfig,ethtool

>>> psutil.net_if_stats()[‘ens33’].speed

1000 #单位 Mb/s

五 网络

#psutil.net_connections 查看网络的连接情况

>>> for i in psutil.net_connections():

… if i.raddr: #判断外部地址情况不为空的情况,避免raddr=()产生错误

… print(i.laddr.ip,i.laddr.port,i.raddr.ip,i.raddr.port,i.status,i.pid)

# 本地地址 ,端口,外部地址 ,外部端口, 连接情况 , pid

(‘192.168.137.16’, 22, ‘192.168.137.1’, 52783, ‘ESTABLISHED’, 1327)

(‘192.168.137.16’, 22, ‘192.168.137.1’, 52083, ‘ESTABLISHED’, 1189)

六进程

#进程的情况

>>> p=psutil.Process(1094) #1094是nginx的master进程

>>> p.num_threads() #打开的线程数,由于nginx是一个主进程和多个工作进程,因此都为1

1

>>> p.cwd() #进程的工作目录路径

‘/’

>>> p.cmdline() #nginx的命令进程信息

[‘nginx:’, ‘master’, ‘process’, ‘/usr/sbin/nginx’]

>>> p.exe() #执行的命令

‘/usr/sbin/nginx’

>>> p.is_running() #是否存活

True

>>> p.name() #进程名称

‘nginx’

>>> p.nice() #进程的nice值

0

>>> p.status() #状态

‘sleeping’

>>> p.threads() #它的线程情况

[pthread(id=1094, user_time=0.0, system_time=0.0)]

>>> p.ppid() #它的父进程

1

>>> p.username() #它的执行用户

‘root’

>>> p.memory_percent() #内存利用率

0.14280343701908643

>>> p.cpu_percent() #cpu利用率

0.0

>>> psutil.pid_exists(1111) #查看进程是否存在

False

>>> psutil.pid_exists(1094)

True

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/137732.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 【SpringBoot】20、SpringBoot中打war包需要注意「建议收藏」

    【SpringBoot】20、SpringBoot中打war包需要注意「建议收藏」最近在做一个项目,遇到了项目打成war包的一个问题,项目创建时选择的时jar包方式,后因项目部署要求,需要打成war包部署,遇到很多坑,在此做一下记录一、修改打包方式原:<version>0.0.1-SNAPSHOT</version><packaging>jar</packaging>改后:<version>0.0.1-SNAPSHOT</version><packaging>war</p

    2022年5月10日
    33
  • 2020 年中国程序员薪资和生活现状调查报告[通俗易懂]

    2020 年中国程序员薪资和生活现状调查报告[通俗易懂]作者|程序员客栈来源|ID:proginnwx根据中国互联网络信息中心(CNNIC)近日发布第44次《中国互联网络发展状况统计报告》。截至2019年06月,中国网民规模为8.54亿,较2018年底增加2598万。网上外卖用户规模达4.21亿,较2018年底增长1516万;网络视频用户规模达7.59亿,较2018年底增长3391万;我…

    2022年9月1日
    3
  • Lena图像原图及由来[通俗易懂]

    Lena图像原图及由来[通俗易懂]莱娜图在数字图像处理学习与研究中颇为知名,常被用作数字图像处理各种实验的例图。

    2022年6月19日
    32
  • 工作格言

    工作格言

    2021年7月25日
    48
  • eclipse如何开发安卓_Android开发教程

    eclipse如何开发安卓_Android开发教程1.首先为了省事,下一个EclipseADTBundle 链接:https://blog.csdn.net/sinat_40692412/article/details/797597462.解压之后,打开eclipse.exe3.打开之后会看到,上面红框部分没有advmanager等快捷按钮。我们将其调出来,Window-&gt;OpenPerspective-&gt;Java。就出现了…

    2022年10月5日
    0
  • KONG网关工作流程简介「建议收藏」

    KONG网关工作流程简介「建议收藏」KONG网关工作流程简介KONG网关工作流程图KONG网关工作流程介绍KONG网关工作流程图KONG网关工作流程介绍上面流程图仅仅是一个大致的示意图,不包含cosumer,plugin,先了解kong大致工作路程,再去深究。一、流程route路由器接收到请求后,根据路由规则,把请求转发到相应的service,service根据host、path、或者url属性,把请求直接转发到target或者把请求转发到upstream(bb两句,这里其实upsteam对service来说是透明的,ups

    2022年9月3日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号