• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Python使用psutil对系统数据进行采集监控

python 搞代码 4年前 (2022-01-08) 28次浏览 已收录 0个评论
文章目录[隐藏]

psutil库可以实时获取系统的一些信息,这样就可以达到实时监控系统的目的。本文对详细讲解了ython使用psutil对系统数据进行采集监控,感兴趣的朋友可以看一看

今天给大家介绍一个可以获取当前系统信息的库――psutil

利用psutil库可以获取系统的一些信息,如cpu,内存等使用率,从而可以查看当前系统的使用情况,实时采集这些信息可以达到实时监控系统的目的。

psutil库

psutil的安装很简单

pip install psutil

psutil库可以获取哪些系统信息?

psutil有哪些作用
1.内存使用情况
2.磁盘使用情况
3.cpu使用率
4.网络接口发送接收流量
5.获取当前网速
6.系统当前进程
…下面通过具体代码案例进行演示

内存使用情况

 import psutil #内存 mem = psutil.virtual_memory() # 系统总计内存 zj = float(mem.total) / 1024 / 1024 / 1024 # 系统已经使用内存 ysy = float(mem.used) / 1024 / 1024 / 1024 # 系统空闲内存 kx = float(mem.free) / 1024 / 1024 / 1024 print('系统总计内存:%d.4GB' % zj) print('系统已经使用内存:%d.4GB' % ysy) print('系统空闲内存:%d.4GB' % kx)

获取当前系统总内存,已使用内存,以及空闲内存

这里获取的内存是的单位是字节,所以需要通过除以1024转为G,下面同样如此就不再重复解释。

获取系统cpu信息

 #显示cpu所有逻辑信息 print(psutil.cpu_times(percpu=True)) # 查看cpu逻辑个数的信息 print(u"逻辑CPU个数: %s" % psutil.cpu_count()) # 查看cpu物理个数的信息 print(u"物理CPU个数: %s" % psutil.cpu_count(logical=False)) #CPU的使用率 cpu = (str(psutil.cpu_percent(1))) + '%' print(u"cup使用率: %s" % cpu)

获取cpu信息,以及本机cpu个数(包括逻辑cpu数和物理cpu数),当前的cpu使用率(每隔1秒获取一次,获取查看实时cpu使用率情况)

系统磁盘使用情况

 part = psutil.disk_partitions() for i in part: print(i) dk = psutil.disk_usage('/') print(dk) #总磁盘 total = dk.total / 1024 / 1024 / 1024 used = dk.used / 1024 / 1024 / 1024 free = dk.free / 1024 / 1024 / 1024 print('系统总计磁盘:%d.3GB' % total) print('系统已经使用磁盘:%d.3GB' % used) print('系统空闲磁盘:%d.3GB' % free) print(u"磁盘使用率: %s%%" % dk.percent) # 获取磁盘总的io个数,读写信息 print(psutil.disk_io_counters())

前面几行是当前系统可以访问的磁盘信息

其中第1行mountpoint=’/’,表示当前本机默认磁盘

其中第6行mountpoint=’/Volumes/Extreme SSD’,表示外接固态移动硬盘

这里以本机磁盘mountpoint=’/’为例,查看磁盘的使用情况(总容量,已使用来源gao@dai!ma.com搞$代^码网,空闲容量,使用率)

最后一行的每一个字段的含义如下:

“””
    read_count 读IO数
    write_count 写IO数
    read_bytes 读IO字节数
    write_bytes 写IO字节数
    read_time 磁盘读时间
    write_time 磁盘写时间
“””

获取系统网卡信息

 # 获取网络总IO信息 print(psutil.net_io_counters()) # 发送数据包 print("发送数据字节:", psutil.net_io_counters().bytes_sent,"bytes") #接收数据包 print("接收数据字节:",psutil.net_io_counters().bytes_recv,"bytes") # 输出网络每个接口信息 net_counter = psutil.net_io_counters(pernic=True) for i in net_counter: print("网卡:"+i+" ,网卡信息:",net_counter[i])

可以获取到当前本机中存在哪些网卡,以及发送和接收的流量是多少

通过在终端中查看本机的网卡是否一致

mac和linux系统命令:ifconfig

window系统命令:ipconfig

部分截图如下:

可以看到程序获取的网卡数据和本机终端获取是一致的

获取当前网速

通过上面的程序获取网卡发送和接收的流量来获取当前网速

 s1 = psutil.net_io_counters(pernic=True)['en0'] time.sleep(1) s2 = psutil.net_io_counters(pernic=True)['en0'] result = s2.bytes_recv - s1.bytes_recv print(str('%d' % (result / 1024)) + 'kb/s')

代码中的[‘en0’]表示获取en0网卡的数据,因为辰哥本机的网卡是en0

最后可以看到获取当前网速情况

每个1秒执行该代码可以实现实时获取网速

其他功能

 # 系统开机时间 # 转换成自然时间格式 print(datetime.datetime.fromtimestamp(psutil.boot_time ()).strftime("%Y-%m-%d %H: %M: %S")) #获取当前系统用户登录信息 users = psutil.users() for i in users: print(i)

可以获取到本机开机时间,以及当前使用的用户

以上就是Python使用psutil对系统数据进行采集监控的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Python使用psutil对系统数据进行采集监控

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址