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

news2024/11/30 10:43:01

shigen坚持日更的博客写手,擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。坚持记录和分享从业两年以来的技术积累和思考,不断沉淀和成长。

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

python脚本监控到的指标

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

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

docker运行centos

是的,你没有看错,我还暴露了容器的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的使用,顺便写了一个脚本实现服务器资源的监控,算是一个日常的练手吧。


以上就是今天分享的全部内容了,觉得不错的话,记得点赞 在看 关注支持一下哈,您的鼓励和支持将是shigen坚持日更的动力。同时,shigen在多个平台都有文章的同步,也可以同步的浏览和订阅:

平台备注链接
CSDN知名博客平台,很少关注shigen的CSDN主页
知乎专注内容分享和问题解答shigen的知乎主页
掘金高质量博客平台shigen的掘金主页
腾讯云开发者社区腾讯云开发者社区shigen的腾讯云开发者社区主页
微信公众平台个人微信公众号,分享技术和日常公众号名:shigen

shigen一起,每天不一样!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1165820.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SSL证书在网购中的重要性

近年来,互联网的快速发展使得线上服务范围不断延伸,这其中网络购物更是在全球范围内都呈现上升趋势。然而病毒攻击,网络钓鱼攻击和恶意软件攻击无处不在,网上购物的安全性受到极大威胁。为了保护网络购物的安全,构建可…

cpu算力DMIPS说明

DMIPS即以dhrystone程式为测量方式标准的mips值,DMIPS即million instruction per second,每秒百万个指令,即处理器每秒能运行多少百万个指令。 D是Dhrystone的缩写,表示的是基于Dhrystone这样一种测试方法下的 MIPSQ。Dhrystone是…

HTTP 协议请求头 If-Match、If-None-Match 和 ETag

概述 在 HTTP 协议中,请求头 If-Match、If-None-Match、If-Modified-Since、If-Unmodified-Since、If-Range 主要是为了解决浏览器缓存数据而定义的请求头标准,按照协议规范正确的判断和使用这几个请求头,可以更精准的处理浏览器缓存&#x…

制造业经营效益差?业务数据管理是关键

《中国制造2025》 指出,目前中国制造业整体尚处于由工业2.0向工业3.0过渡的阶段,而欧美的制造强国已提出工业4.0概念,由“制造”迈向“智造”, 实现智能工厂、 智能生产和智能物流,建立一个高度灵活的个性化和数字化的…

.NET Core 中插件式开发实现

在 .NET Framework 中,通过AppDomain实现动态加载和卸载程序集的效果;但是.NET Core 仅支持单个默认应用域,那么在.NET Core中如何实现【插件式】开发呢? 一、.NET Core 中 AssemblyLoadContext的使用 1、AssemblyLoadContext简…

Git 删除本地和远程分支

目录 删除本地和远程分支分支删除验证验证本地分支验证远程分支 开源项目微服务商城项目前后端分离项目 删除本地和远程分支 删除 youlai-mall 的 dev 本地和远程分支 # 删除本地 dev 分支(注:一定要切换到dev之外的分支才能删除,否则报错&…

【Proteus仿真】【STM32单片机】数控稳压可调电源设计

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真STM32单片机控制器,使用动态数码管、按键、PCF8591 AD/DAC、LM358放大电路模块等。 主要功能: 系统运行后,系统默认输出直流5V,数码…

Linux普通用户提权(sudo)

文章目录 Linux普通用户提权(sudo)1、在sudoers文件添加普通用户2、测试 Linux普通用户提权(sudo) 1、在sudoers文件添加普通用户 正常来说,普通用户初始是不具备提权的能力的,比如执行sudo ls会出现报警告…

内置对象和方法、前端基础之BOM和DOM

内置对象和方法 RegExp对象 // 定义正则表达式两种方式 var reg1 new RegExp("^[a-zA-Z][a-zA-Z0-9]{5,11}"); var reg2 /^[a-zA-Z][a-zA-Z0-9]{5,9}$/;// 正则校验数据 reg1.test(jason666) reg2.test(jason666)/*第一个注意事项,正则表达式中不能有…

基于闪电连接过程算法的无人机航迹规划-附代码

基于闪电连接过程算法的无人机航迹规划 文章目录 基于闪电连接过程算法的无人机航迹规划1.闪电连接过程搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要:本文主要介绍利用闪电连接过程算法来优化无…

智能政务,办事更轻松!拓世法宝AI智慧政务数字人一体机,重新定义你的政务办理体验!

在构建现代化的政务服务体系中,高效、便捷是最重要的衡量标准。随着信息化技术的发展,很多政务服务已经实现了重要的线上办理,减轻了公民和企业的办事负担,同时也提升了政府部门的服务效率。可是,一些场景下的办事流程…

工业制造:如何有效监测漏水事件,让老板都挑不出毛病?

水浸监控技术作为一种关键的安全措施,在不同领域中扮演着至关重要的角色。随着自然灾害和人为事件的不断增加,包括洪水、泄漏和管道破裂等,对水浸监控系统的需求变得越来越紧迫。 客户案例 工业制造业 在工业制造领域,水浸监控系统…

素材收藏必备!免费获取这5个矢量图标库,设计更得心应手!

可以自由拉伸的矢量图标,在平面设计流程中的重要性,有过设计经验的用户一定不会陌生。 下面,我们给大家准备了5个免费使用的矢量logo图标库,建议大家一键收藏。 1:即时设计 即时设计的资源社区内有海量免费的矢量图…

kruskal求最小生成树

算法思路: 将所有边按照权值的大小进行升序排序,然后从小到大一一判断。 如果这个边与之前选择的所有边不会组成回路,就选择这条边分;反之,舍去。 直到具有 n 个顶点的连通网筛选出来 n-1 条边为止。 筛选出来的边…

Jim Kalbach:3 个关键点与 4 个绘制步骤,直击客户体验可视化

“你必须从客户体验出发,技术为之服务,而非相反。”在神策 2023 数据驱动大会现场,Jim Kalbach 引用了 Steve Jobs 的观点,并就客户体验对企业的价值做了深入分享。 本文根据 Jim Kalbach 的完整分享整理。 一、理解“体验”的 3 …

新手教程|搭建zkLogin的证明服务端

zkLogin是Sui的一种原生功能,它允许人们只使用来自如Google、Meta和Twitch等的现有网络凭证来创建Sui地址并签署交易。为确保隐私,集成zkLogin的apps必须创建ZKP (Zero Knowledge proofs,零知识证明),以使凭证对app保持隐藏&#…

一款快速获取目标网站关键信息的工具

1.摘要 今天要介绍的这款工具是一个快速收集网站信息的开源脚本, 采用Python语言编写, 该工具可以快速收集网站的页面标题、网站上次更新日期、DNS信息、子域、防火墙名称、网站使用的技术栈、证书等信息, 默认支持对验证码和JavaScript内容执行绕过操作。 2.工具安装使用 使…

2023 辽宁省大学数学建模 B 题 数据驱动的水下导航适配区分类预测

“海洋强国”战略部署已成为推动中国现代化建设的重要组成部分,国家对 此提出“发展海洋经济,保护海洋生态环境,加快建设海洋强国”的明确要求。 《辽宁省“十四五”海洋经济发展规划》明确未来全省海洋经济的发展战略、 发展目标、重大任…

开源的网站数据分析统计平台——Matomo

Matomo 文章目录 Matomo前言一、环境准备1. 整体安装流程2.安装PHP 7.3.303.nginx配置4.安装matomo4.1 访问安装页面 http://192.168.10.45:8088/index.php4.2 连接数据库4.3 设置管理员账号4.4 生成js跟踪代码4.5 安装完成4.6 警告修改4.7 刷新页面,就可以看到登陆…

浅谈安科瑞电力监控系统在百事亚洲研发中心的应用

摘要:介绍百事亚洲研发中心,采用智能电力仪表、采集配电现场的各种电参量和开关信号。系统采用现场就地组网的方式,组网后通过现场总线通讯并远传至后台,通过Acrel-2000型电力监控系统实现配电所配电回路用电的实时监控和管理。 …