python脚本,实现监控系统的各项资源

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

python脚本监控到的指标

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

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

docker运行centos

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

但是这不是重点,我拉取的centos其实是一个裸机,跟我们最开始买的服务器一样的。运行代码,肯定是需要安装python解释器的,这里我找到了珍藏许久的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全套学习资料,都是我自己学习时整理的,希望可以帮到你,一起加油!

😝有需要的小伙伴,可以V扫描下方二维码免费领取🆓

1️⃣零基础入门

① 学习路线

对于从来没有接触过Python的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

② 路线对应学习视频

还有很多适合0基础入门的学习视频,有了这些视频,轻轻松松上手Python~
在这里插入图片描述

③练习题

每节视频课后,都有对应的练习题哦,可以检验学习成果哈哈!
在这里插入图片描述

2️⃣国内外Python书籍、文档

① 文档和书籍资料

在这里插入图片描述

3️⃣Python工具包+项目源码合集

①Python工具包

学习Python常用的开发软件都在这里了!每个都有详细的安装教程,保证你可以安装成功哦!
在这里插入图片描述

②Python实战案例

光学理论是没用的,要学会跟着一起敲代码,动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。100+实战案例源码等你来拿!
在这里插入图片描述

③Python小游戏源码

如果觉得上面的实战案例有点枯燥,可以试试自己用Python编写小游戏,让你的学习过程中增添一点趣味!
在这里插入图片描述

4️⃣Python面试题

我们学会了Python之后,有了技能就可以出去找工作啦!下面这些面试题是都来自阿里、腾讯、字节等一线互联网大厂,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
在这里插入图片描述
在这里插入图片描述

上述所有资料 ⚡️ ,朋友们如果有需要的,可以扫描下方👇👇👇二维码免费领取🆓

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值