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)
上一篇 2022年6月1日 下午2:36
下一篇 2022年6月1日 下午2:36


相关推荐

  • 常用拉氏变换表

    常用拉氏变换表常用拉氏变换表 YKR 博客园拉氏变换参考表 Whitecedar 的博客 CSDN 博客 拉氏变换表 https jingyan baidu com article c33e3f485bfe html

    2026年3月20日
    2
  • redis集群搭建之官方redis cluster 搭建实践「建议收藏」

    rediscluster是官方的redis集群实现,本篇文章为搭建集群实践篇一、手动搭建redis官方已经redis-trib.rb命令来给我们实现redis搭建了。但是为了了解原理,首先我们来手动搭建不使用官方的命令。如果大家想快速搭建,可以直接跳到二。1、准备我们这个例子是在单机上部署集群,实际的工作情况会在不同的机器上搭建,一方面为了保证高可用也是为了扩大数据的容量所以实际中会在不同的机器…

    2022年4月17日
    35
  • jsp+ajax_javascriptjavascript日

    jsp+ajax_javascriptjavascript日明后两天梁言兵老师来讲Ajax及其最近作过的一个真实的Ajax项目,所以,我今天讲解梁老师的课程所需要的一些前置知识。因为大家对Javascript不是很熟悉,所以我首先讲解Javascript的DHTML功能。本来入学考试要求大家很好地掌握Javascript的,但是大家都不能理解我们的苦衷,并没有专心去对待Javascript。想想我前两年强调javascript和css的重要性时,一些培训中

    2025年10月27日
    3
  • h2数据库如何连接_怎样远程连接数据库

    h2数据库如何连接_怎样远程连接数据库H2数据库支持如下3种连接模式: 内嵌模式(通过JDBC进行本地连接,应用和数据库在同一个JVM中) 服务器模式(通过JDBC或ODBC或TCP/IP进行远程连接) 混合模式(同时支持本地和远程连接)数据库连接URL说明:TopicURLFormatandExamples嵌入式(本地)连接jdb

    2022年10月11日
    7
  • agrs php zf2_AGRS币是什么东西,投资理财区块链数字货币

    agrs php zf2_AGRS币是什么东西,投资理财区块链数字货币AGRS币是什么东西,投资理财区块链数字货币如何高回报投zi数字货币,最后一波10~100倍财富回报盛宴,错过了就不再有!大家好,七年虚拟货币玩家,大牛谈不上,但是也带着上万名学生做了几年投zi了,没错过比特币,没错过以太坊,没错过AGRS币,回报在1000倍左右了从2013年年前开始带学生投zi区块链,学生的平均回报也在200倍左;欢迎大家来一起交流,互相学习!如何在AGRS币牛市和熊市的切换中…

    2022年5月30日
    34
  • python字符串格式化深入详解(四种方法)

    python字符串格式化深入详解(四种方法)前言 本文详细整理了 python 字符串格式化的几种方式 一 使用 符号来进行格式化格式符为真实值预留位置 并控制显示的格式 格式符可以包含有一个类型码 用以控制显示的类型 如下 s 字符串 采用 str 的显示 r 字符串 采用 repr 的显示 c 单个字符 b 二进制整数 d 十进制整数 i 十进制整数 o

    2026年3月19日
    2

发表回复

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

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