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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 服务器winsxs文件夹怎么清理工具,win7如何使用WinSxS工具安全删除WinSxS文件夹垃圾…

    服务器winsxs文件夹怎么清理工具,win7如何使用WinSxS工具安全删除WinSxS文件夹垃圾…我们都知道WinSxS是系统文件Windows目录下一个非常重要的文件夹,WinSxS文件夹里边有很多重要的组件,这些文件能够保证Windows7系统正常运行,所以WinSxS文件夹里面的文件是不可以随便删除的。但WinSxS文件夹占用的空间较大,影响win7运行速度,有什么方法可以安全删除一些无用的垃圾?我们可以使用WinSxS工具安全删除WinSxS文件夹垃圾,但是大家在删除文件过程中要小心,…

    2022年10月24日
  • 使用Jenkins 自动部署发布

    使用Jenkins 自动部署发布

  • C语言空格代码_c语言中空格是字符吗

    C语言空格代码_c语言中空格是字符吗一、逗号,之后加空格printf("error!score[%d]=%d\n",i,score[i]);二、分号;之后加空格for(i=0;i<student_num;i++);三、关系运算符<、<=、>、>=、==、!=前后加空格if((score[i]>=0)&&(s…

  • python中的%s%是什么意思

    python中的%s%是什么意思python中的%s%是什么意思它是一个字符串格式化语法(它从C借用)。请参阅“格式化字符串”:Python支持将值格式化为字符串。虽然这可以包括非常复杂的表达式,但最基本的用法是将值插入到%s占

  • ASP.NET_SessionId 何时生成?何时失效?有何作用呢?

    ASP.NET_SessionId 何时生成?何时失效?有何作用呢?相信做asp.netweb开发的码友们,对ASP.NET_SessionId一定不陌生。ASP.NET_SessionId保存在浏览器cookie中。那么它是来源于哪里?何时生成?何时失效?有何作用呢?带着这些疑问,我们开始探寻它。废话不多说,实践才是检验真理的最好方法,直接上代码。打开VS建立一个APS.NETMVC程序,在HOME页面添加如下代码:clearSession和clearSessionId这两个是ajax方式请求过去的,不会刷新页面,对应的后台方法如下:对应的action代

  • map的遍历方式「建议收藏」

    map的遍历方式「建议收藏」@org.junit.TestpublicvoidtestHashMap(){Map<String,String>map=newHashMap<>(4);

发表回复

您的电子邮箱地址不会被公开。

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