基于python编写监控系统各项资源的脚本

 更新时间:2023年11月03日 14:11:19   作者:shigen01  
这篇文章主要为大家详细介绍了如何编写一个python脚本,实现监控网络的流量、CPU使用率、内存使用率和磁盘使用情况,感兴趣的小伙伴可以了解下

今天的文章涉及到docker的操作和一个python脚本,实现监控网络的流量、CPU使用率、内存使用率和磁盘使用情况。来和shigen一起先看看效果吧:

这是在控制台中出现的数据,可以很简单的看到我们想要的监控指标。如果实现定时任务和数据的存储、数据的展示,就是很好看的数据监控图表了。

我的代码主要是运行在一个centos的docker容器中。

是的,你没有看错,我还暴露了容器的22端口,供我在宿主机进行连接。

但是这不是重点,我拉取的centos其实是一个裸机,跟我们最开始买的服务器一样的。运行代码,肯定是需要安装python解释器的,这里shigen找到了珍藏许久的shell脚本,直接复制粘贴即可配置好python的环境。

这里我选取的python版本是:3.9.2。

wget https://registry.npmmirror.com/-/binary/python/3.9.2/Python-3.9.2.tgz
tar -zxvf Python*
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make libffi-devel
./configure
make && make install

验证python是否安装成功,只需要执行一下命令即可:

which python3 && python3 --version

那其实还有很重要的一步:配置pip的镜像,不然网络会慢到你怀疑人生。

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

现在,我们的前置的准备工作全部的完成了。我们直接在vscode中编辑好代码:

# -*- encoding: utf-8 -*-
__date__ = '2023/11/02 19:01:26'

import psutil
from rich.table import Table
from rich.console import Console

# 创建新表格
table = Table(show_header=True, header_style="bold magenta", expand=True)
table.add_column("指标", style="dim", width=12)
table.add_column("数值", justify="right")

# 获取系统信息
cpu_percent = psutil.cpu_percent(interval=1)
cpu_freq = psutil.cpu_freq()
cpu_cores = psutil.cpu_count(logical=False)
memory = psutil.virtual_memory()
network_stats = psutil.net_io_counters()
disk_stats = psutil.disk_partitions(all=True)

# 添加 CPU 信息到表格
table.add_row("CPU 使用率", f"{cpu_percent}%")
if cpu_freq is not None:
    table.add_row("CPU 频率", f"{cpu_freq.current:.2f} MHz")
else:
    table.add_row("CPU 频率", "N/A")
table.add_row("CPU 核心数", f"{cpu_cores} 核")

# 添加内存信息到表格
table.add_row("总内存", f"{memory.total / (1024**3):.2f} GB")
table.add_row("已用内存", f"{memory.used / (1024**3):.2f} GB")
table.add_row("内存使用百分比", f"{memory.percent}%")

# 添加网络信息到表格
table.add_row("发送字节数", f"{network_stats.bytes_sent / (1024**2):.2f} MB")
table.add_row("接收字节数", f"{network_stats.bytes_recv / (1024**2):.2f} MB")

# 添加磁盘信息到表格
for partition in disk_stats:
    disk_usage = psutil.disk_usage(partition.mountpoint)
    table.add_row(f"{partition.device} ({partition.mountpoint})", f"{disk_usage.percent}%")

# 创建 console 对象并输出表格
console = Console()
console.print(table)

这里主要用到了两个库:psutilrich,借助psutil我们可以轻易的获得系统的各种指标,那rich主要是在控制台实现炫酷的效果。这里是时间关系,shigen写的比较简单。

那文件在我的主机上,centos的服务器在我的docker里边,文件到我的docker容器就需要docker cp派上用场了。在主机执行:

docker cp xx.py dockerId:/shigen/python

我们安装一下需要的库:

pip3 install psutil rich

现在环境配置成功,我们就可以看到上边的表格指标数据了。其实还是主要的复习一下docker的使用,顺便写了一个脚本实现服务器资源的监控,算是一个日常的练手吧。

以上就是基于python编写监控系统各项资源的脚本的详细内容,更多关于python监控系统资源的资料请关注脚本之家其它相关文章!

相关文章

  • Python爬虫动态ip代理防止被封的方法

    Python爬虫动态ip代理防止被封的方法

    在本篇文章中小编给大家整理了关于Python爬虫动态ip代理防止被封的方法以及实例代码,需要的朋友们学习下。
    2019-07-07
  • Python优雅执行SSH命令的十种主流方法

    Python优雅执行SSH命令的十种主流方法

    SSH作为网络安全的基石,广泛应用于远程管理、文件传输和自动化任务,Python凭借其丰富的生态(如paramiko、fabric)和简洁语法,成为编写SSH脚本的首选语言,本文将系统梳理通过Python执行SSH远程命令的十种主流方法,需要的朋友可以参考下
    2025-05-05
  • Python读取ZIP和TAR格式压缩包的实现

    Python读取ZIP和TAR格式压缩包的实现

    本文介绍了使用Python读取ZIP和TAR格式的压缩包,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-01-01
  • jupyter notebook 多行输出实例

    jupyter notebook 多行输出实例

    这篇文章主要介绍了jupyter notebook 多行输出实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • python入门语句基础之if语句、while语句

    python入门语句基础之if语句、while语句

    本文介绍了python入门语句基础之if语句、while语句,if 语句让你能够检查程序的当前状态,并据此采取相应的措施,而for 循环用于针对集合中的每个元素都一个代码块,而 while 循环不断地运行,直到指定的条件不满足为止,本文通过示例代码详解介绍,需要的朋友参考下吧
    2022-04-04
  • 如何将Pycharm中Terminal使用Powershell作为终端

    如何将Pycharm中Terminal使用Powershell作为终端

    这篇文章主要介绍了如何将Pycharm中Terminal使用Powershell作为终端问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • python项目文件结构实例详解

    python项目文件结构实例详解

    python项目中不同类型的文件承担着不同的角色,理解它们的作用对于高效开发和协作至关重要,这篇文章主要介绍了python项目文件结构的相关资料,需要的朋友可以参考下
    2025-07-07
  • 使用python实现扫描端口示例

    使用python实现扫描端口示例

    这篇文章主要介绍了使用python实现扫描端口示例,需要的朋友可以参考下
    2014-03-03
  • 改进Django中的表单的简单方法

    改进Django中的表单的简单方法

    这篇文章主要介绍了改进Django中的表单的简单方法,Django是Python重多人气框架中最著名的一个,需要的朋友可以参考下
    2015-07-07
  • python实现图书馆研习室自动预约功能

    python实现图书馆研习室自动预约功能

    这篇文章主要为大家详细介绍了python实现图书馆研习室自动预约功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-04-04

最新评论