告别繁琐,用 psutil 简化你的 Python 系统监控任务

开发
传统的监控方式往往涉及复杂的工具和冗长的配置,耗时且容易出错。那么,如何在Python中简化这一过程呢?答案就是——psutil。

在日常的开发工作中,系统监控是不可或缺的一部分。无论你是需要监控服务器的CPU使用率、内存占用情况,还是跟踪网络连接,及时掌握系统的状态都是至关重要的。然而,传统的监控方式往往涉及复杂的工具和冗长的配置,耗时且容易出错。那么,如何在Python中简化这一过程呢?答案就是——psutil。

什么是psutil?

psutil,全名为Process and System Utilities,是一个跨平台的Python库,用于方便地获取系统运行时的信息。无论是CPU、内存、磁盘、网络、还是系统进程状态,psutil都能通过简洁的API一手掌握。

为什么选择psutil?

  • 轻量且功能强大:psutil库非常轻量,不会给你的系统带来额外的负担,同时它提供了丰富的功能,几乎涵盖了所有你能想到的系统监控需求。
  • 跨平台支持:无论你是在Windows、Linux还是macOS上开发,psutil都能无缝运行。
  • 简单易用的API:相比于其他工具,psutil的API设计得非常直观、易用。只需几行代码,就可以完成复杂的系统监控任务。

安装psutil

安装psutil非常简单,你可以使用Python的包管理工具pip来快速安装。在命令行中执行以下命令即可:

pip install psutil

该命令会自动下载并安装psutil及其所有依赖库。一旦安装完成,你就可以在Python脚本中导入psutil库并开始使用它来获取各种系统信息了。

安装成功返回信息

基础功能一览

让我们通过一些简单的例子,看看psutil如何简化系统监控任务。

(1) 获取CPU信息

import psutil

# 获取CPU的使用率
cpu_usage = psutil.cpu_percent(interval=1)
print(f"当前CPU使用率: {cpu_usage}%")

# 获取每个CPU的使用率
cpu_usage_per_cpu = psutil.cpu_percent(interval=1, percpu=True)
print(f"每个CPU的使用率: {cpu_usage_per_cpu}")

上述代码执行成功后,如下图所示:

获取CPU信息

(2) 内存监控

# 获取虚拟内存信息
virtual_memory = psutil.virtual_memory()
print(f"总内存: {virtual_memory.total / (1024**3):.2f} GB")
print(f"已使用内存: {virtual_memory.used / (1024**3):.2f} GB")
print(f"剩余内存: {virtual_memory.available / (1024**3):.2f} GB")

上述代码执行成功后,如下图所示:

内存监控

(3) 磁盘使用情况

# 获取磁盘分区信息
disk_usage = psutil.disk_usage('/')
print(f"磁盘总容量: {disk_usage.total / (1024**3):.2f} GB")
print(f"已使用: {disk_usage.used / (1024**3):.2f} GB")
print(f"剩余空间: {disk_usage.free / (1024**3):.2f} GB")

上述代码执行成功后,如下图所示:

磁盘使用情况

(4) 网络监控

# 获取网络IO信息
net_io = psutil.net_io_counters()
print(f"发送字节数: {net_io.bytes_sent / (1024**2):.2f} MB")
print(f"接收字节数: {net_io.bytes_recv / (1024**2):.2f} MB")

上述代码执行成功后,如下图所示:

网络监控

(5) 进程管理

除了基础的系统资源监控,psutil还提供了强大的进程管理功能,你可以轻松获取、操作系统进程。

# 获取当前运行的进程列表
processes = psutil.pids()
for pid in processes:
    p = psutil.Process(pid)
    print(f"PID: {pid}, 名称: {p.name()}, 状态: {p.status()}")

你还可以通过psutil终止进程、查看进程的资源占用情况等等。与手动编写复杂的系统监控脚本相比,psutil让这一切变得更加简单直观。如下图所示:

进程管理

系统巡检

通过利用Python的psutil库,我们能够实时监测主机,精确获取系统的CPU负载、内存占用、磁盘I/O、网络流量等关键健康指标。结合自动化工具,还可以对业务系统的主机资源利用率进行批量巡检,实现高效的系统管理和维护。巡检结果如下图:

巡检结果

总结

对于开发者来说,简化系统监控任务意味着节省时间、降低错误率,并提高工作效率。psutil作为一款轻量级且功能强大的工具,不仅让Python开发者能够更方便地实现系统监控,还能通过其丰富的API满足各种复杂的监控需求。如果你还在为繁琐的系统监控任务而烦恼,不妨试试psutil,它一定会成为你得力的助手。!

脚本获取方式

上述脚本已经上传上传到gitee,有需要的小伙伴可以自行获取。gitee上的仓库主要是分享一些工作中常用的脚本。小伙伴可以frok或者watch仓库,这样有更新可以及时关注到。

仓库地址:https://gitee.com/didiplus/script

责任编辑:赵宁宁 来源: 攻城狮成长日记
相关推荐

2023-09-13 15:09:35

软件开发数字化进程

2024-09-05 09:46:37

操作体系密码

2024-03-11 06:00:00

OptunaPython超参数优化

2024-10-16 16:30:14

ShellShell脚本

2011-04-28 16:20:18

全能一体机使用心得

2018-03-22 11:00:45

PythonRSS

2021-08-24 16:20:38

Linux终端

2018-12-28 09:24:50

华为

2009-07-15 09:06:07

BeanTableMoSwing

2022-07-24 14:49:17

NetfilterLinux防火墙

2021-10-08 14:14:03

jconsoleJavaLinux

2024-12-16 13:00:00

JavaELK开发

2015-01-27 15:30:10

反监控监控探测SnoopSnitch

2017-12-19 11:00:54

Linux系统日志

2024-06-12 12:36:48

CrontabPython

2013-08-02 11:22:52

监控监控工具

2024-08-21 08:43:53

Python技巧键值

2024-07-24 08:14:07

Nginx监控数据
点赞
收藏

51CTO技术栈公众号