使用 Python 自动监控磁盘资源使用情况和服务器运行状况更新

使用 python 自动监控磁盘资源使用情况和服务器运行状况更新

使用 python 自动监控磁盘资源使用情况和服务器运行状况更新

监控服务器磁盘使用情况对于保持最佳性能和防止停机至关重要。在这篇博文中,我们将探讨如何使用 python 脚本自动监控磁盘资源并通过 api 更新服务器运行状况。我们还将讨论如何设置 cron 作业来定期运行脚本。

先决条件

python编程基础知识熟悉linux命令行操作访问可以运行 python 脚本并设置 cron 作业的服务器用于更新服务器运行状况的 api 端点(替换为您的实际 api url 和令牌)

python 脚本解释

下面是执行磁盘资源监控并通过 api 更新服务器运行状况的 python 脚本。

本篇博文未涵盖 health api 创建,如果您也需要,请发表评论,我也会发布该 api 创建步骤。

import subprocessimport requestsimport argparseclass resource:    file_system = ''    disk_size = 0.0    used = 0.0    avail = 0.0    use_percent = 0.0    mounted_on = 0.0    disk_free_threshold = 1    mount_partition = "/"class resourcesmonitor(resource):    def __init__(self):        self.__file_system = resource.file_system        self.__disk_size = resource.disk_size        self.__used = resource.used        self.__avail = resource.avail        self.__use_percent = resource.use_percent        self.__mounted_on = resource.mounted_on        self.__disk_free_threshold = resource.disk_free_threshold        self.__mount_partition = resource.mount_partition    def show_resource_usage(self):        """        print the resource usage of disk.        """        print("file_system", "disk_size", "used", "avail", "use_percent", "mounted_on")        print(self.__file_system, self.__disk_size, self.__used, self.__avail, self.__use_percent, self.__mounted_on)    def check_resource_usage(self):        """        check the disk usage by running the unix 'df -h' command.        """        response_df = subprocess.popen(["df", "-h"], stdout=subprocess.pipe)        for line in response_df.stdout:            split_line = line.decode().split()            if split_line[5] == self.__mount_partition:                if int(split_line[4][:-1]) > self.__disk_free_threshold:                    self.__file_system, self.__disk_size, self.__used = split_line[0], split_line[1], split_line[2]                    self.__avail, self.__use_percent, self.__mounted_on = split_line[3], split_line[4], split_line[5]                    self.show_resource_usage()                    self.update_resource_usage_api(self)    def update_resource_usage_api(self, resource):        """        call the update api using all resource details.        """        update_resource_url = url.format(            resource.__file_system,            resource.__disk_size,            resource.__used,            resource.__avail,            resource.__use_percent,            resource_id        )        print(update_resource_url)        payload = {}        files = {}        headers = {            'token': 'bearer apitoken'        }        try:            response = requests.request("get", update_resource_url, headers=headers, data=payload, files=files)            if response.ok:                print(response.json())        except exception as ex:            print("error while calling update api")            print(ex)if __name__ == '__main__':    url = "http://yourapi.com/update_server_health_by_server_id?path={}&size={}"           "&used={}&avail={}&use_percent={}&id={}"    parser = argparse.argumentparser(description='disk resource monitor')    parser.add_argument('-id', metavar='id', help='id record of server', default=7, type=int)    args = parser.parse_args()    resource_id = args.id    print(resource_id)    resource_monitor = resourcesmonitor()    resource_monitor.check_resource_usage()

resource 和 resourcesmonitor 类

resource 类定义了与磁盘使用相关的属性,例如文件系统、磁盘大小、已用空间等。 resourcesmonitor类继承自resource并初始化这些属性。

检查磁盘使用情况

check_resource_usage 方法执行 unix df -h 命令来获取磁盘使用统计信息。它解析输出以查找指定安装分区的磁盘使用情况(默认为/)。如果磁盘使用率超过阈值,则会更新资源详细信息并调用 api 更新方法。

立即学习“Python免费学习笔记(深入)”;

通过 api 更新服务器健康状况

update_resource_usage_api 方法使用资源详细信息构造 api 请求 url,并发送 get 请求来更新服务器运行状况。确保将 http://yourapi.com/update_server_health_by_server_id 替换为您的实际 api 端点并提供正确的 api 令牌。

使用脚本

将脚本保存为resource_monitor.py并使用python 3运行它。

命令行参数

-id:要更新健康数据的服务器id(默认为7)。这将有助于在多个服务器中运行相同的脚本,只需更改 id。

用法和输出示例

$ python3 resource_monitor.py -id=7output:file_system disk_size used avail use_percent mounted_on/dev/root 39g 31g 8.1g 80% /api get request:http://yourapi.com/update_server_health_by_server_id?path=/dev/root&size=39g&used=31g&avail=8.1g&use_percent=80%&id=7response{'success': 'servers_health data updated.', 'data': {'id': 7, 'server_id': 1, 'server_name': 'web-server', 'server_ip': '11.11.11.11', 'size': '39g', 'path': '/dev/root', 'used': '31g', 'avail': '8.1g', 'use_percent': '80%', 'created_at': '2021-08-28t13:45:28.000000z', 'updated_at': '2024-10-27t08:02:43.000000z'}}

使用 cron 实现自动化

要每 30 分钟自动执行一次脚本,请添加一个 cron 作业,如下所示:

*/30 * * * * python3 /home/ubuntu/resource_monitor.py -id=7 &

您可以通过运行 crontab -e 并添加以上行来编辑 cron 作业。这将确保脚本每 30 分钟运行一次,从而使您的服务器运行状况数据保持最新。

结论

通过自动化磁盘资源监控和服务器运行状况更新,您可以主动管理服务器的性能并避免由于磁盘空间短缺而导致的潜在问题。此 python 脚本可作为起点,并可进行定制以满足您的特定需求。

以上就是使用 Python 自动监控磁盘资源使用情况和服务器运行状况更新的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1350379.html

赞 (0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
PyQt5 中 QLabel 和 QPixmap 如何显示图片并获取其实际显示大小和坐标?
上一篇 2025年12月13日 15:01:12
如何按特定要求合并内容丰富的多行字符串?
下一篇 2025年12月13日 15:01:20

相关推荐

  • 斑马智行全球首发全模态端侧大模型解决方案 推动智舱进入AI时代

    斑马智行全球首发全模态端侧大模型解决方案  推动智舱进入AI时代斑马智行全球首发全模态端侧大模型解决方案  推动智舱进入AI时代斑马智行全球首发全模态端侧大模型解决方案  推动智舱进入AI时代斑马智行全球首发全模态端侧大模型解决方案  推动智舱进入AI时代

    9月24日,2025云栖大会在杭州拉开帷幕,阿里巴巴集团ceo、阿里云智能集团董事长兼ceo吴泳铭发表主题演讲,首次全面揭示实现asi(人工超级智能)的三步演进路径:智能涌现、自主行动与自我迭代,勾勒出从模仿人类、辅助人类到最终超越人类的完整发展图景。 围绕这一战略构想,吴泳铭明确提出:“大模型将成…

    2026年9月29日 • 用户投稿
    000
  • 研究Linux日志文件中各字段的内容

    研究Linux日志文件中各字段的内容研究Linux日志文件中各字段的内容研究Linux日志文件中各字段的内容研究Linux日志文件中各字段的内容

    Linux作为一种广泛使用的操作系统,具有强大的日志系统来记录系统运行中的重要信息。日志文件通常存储在/var/log目录下,其中包含了各种不同类型的日志文件,如系统日志、安全日志等。本文将深入探讨Linux日志文件中的各列内容,并结合具体的代码示例来解释各列的含义。 1. syslog日志文件 s…

    2026年9月29日 • 用户投稿
    100
  • 多模态AI模型安全加固措施 多模态AI防护配置指南

    多模态AI模型安全加固措施 多模态AI防护配置指南多模态AI模型安全加固措施 多模态AI防护配置指南多模态AI模型安全加固措施 多模态AI防护配置指南多模态AI模型安全加固措施 多模态AI防护配置指南

    多模态ai模型的安全性可通过四方面措施加强:1. 多模态内容过滤,包括使用先进算法、定期更新规则、设置多层验证;2. 防范对抗攻击,通过增强鲁棒性、实时监控、数据预处理;3. 跨域安全防护,实施传输过滤、加密通信、访问控制;4. 指令遵循与幻觉抑制,优化指令数据、提升泛化能力、建立检测机制。 ☞☞☞…

    2026年9月29日 • 用户投稿
    000
  • 豆包AI生成商业计划书的技巧 快速梳理创业要点的AI方法

    豆包AI生成商业计划书的技巧 快速梳理创业要点的AI方法豆包AI生成商业计划书的技巧 快速梳理创业要点的AI方法豆包AI生成商业计划书的技巧 快速梳理创业要点的AI方法豆包AI生成商业计划书的技巧 快速梳理创业要点的AI方法

    用豆包ai生成商业计划书的关键在于结构引导与内容优化。首先明确核心内容结构,先提问获取通用框架,再结合项目实际逐项补充,控制在8个部分以内,突出重点并简化合并章节;其次使用关键词+语气提示引导ai写出专业内容,如“产品优势”可设定“以专业语气写一段关于智能喂食器的产品优势说明”;第三步借助ai生成财…

    2026年9月29日 • 用户投稿
    100
  • Linux如何后台运行进程 nohup和&用法解析

    Linux如何后台运行进程 nohup和&用法解析Linux如何后台运行进程 nohup和&用法解析Linux如何后台运行进程 nohup和&用法解析Linux如何后台运行进程 nohup和&用法解析

    1.&用于将进程放到当前终端的后台运行,但关闭终端时进程会被终止;2.nohup可防止进程因终端关闭被挂断,结合&使用能实现后台持续运行。两者区别在于&am…

    2026年9月29日 • 用户投稿
    300
  • 李飞飞世界模型大更新! 实时生成 3D 世界,只要一块 GPU

    李飞飞世界模型大更新! 实时生成 3D 世界,只要一块 GPU李飞飞世界模型大更新! 实时生成 3D 世界,只要一块 GPU李飞飞世界模型大更新! 实时生成 3D 世界,只要一块 GPU李飞飞世界模型大更新! 实时生成 3D 世界,只要一块 GPU

    当 OpenAI 的奥特曼还在到处买显卡、买算力,来支撑他的 Sora 2 视频生成模型。 李飞飞的实验室 The World Labs,用一张显卡就能运行一个世界。他们今天发布了一项名为 RTFM ( Real-Time Frame Model ) 的新技术,一个全新的实时世界生成模型。 和九月中…

    2026年9月29日 • 用户投稿
    200
  • 桶排序是什么?桶排序的实现方法

    桶排序是什么?桶排序的实现方法桶排序是什么?桶排序的实现方法桶排序是什么?桶排序的实现方法桶排序是什么?桶排序的实现方法

    桶排序通过将数据分到多个桶内,对每个桶单独排序再合并,实现高效排序。其核心优势在于数据均匀分布时可达O(n+k)线性时间复杂度。与计数排序(统计频次)和基数排序(按位排序)不同,桶排序按值范围划分,适用于浮点数且更灵活,但性能依赖数据分布均匀性。实际应用中面临数据分布不均导致性能退化、内存开销大、桶…

    2026年9月29日 • 用户投稿
    100
  • 一门双至尊!荣耀MagicPad3 Pro平板首发第五代骁龙8至尊版:定义安卓最强平板

    一门双至尊!荣耀MagicPad3 Pro平板首发第五代骁龙8至尊版:定义安卓最强平板一门双至尊!荣耀MagicPad3 Pro平板首发第五代骁龙8至尊版:定义安卓最强平板一门双至尊!荣耀MagicPad3 Pro平板首发第五代骁龙8至尊版:定义安卓最强平板一门双至尊!荣耀MagicPad3 Pro平板首发第五代骁龙8至尊版:定义安卓最强平板

    9月25日,高通在骁龙峰会上正式揭晓了其最新旗舰移动平台——第五代骁龙8至尊版。这一发布瞬间点燃行业关注,而更引人瞩目的是,多家终端品牌随即宣布将推出搭载该芯片的新品,其中荣耀尤为抢眼。 荣耀产品线总裁方飞在峰会现场宣布:荣耀MagicPad3 Pro与荣耀Magic8系列将同步首发第五代骁龙8至尊…

    2026年9月29日 • 用户投稿
    100
  • 如何在Java中使用用户输入退出for或while循环

    如何在Java中使用用户输入退出for或while循环如何在Java中使用用户输入退出for或while循环如何在Java中使用用户输入退出for或while循环如何在Java中使用用户输入退出for或while循环

    本文旨在介绍如何在Java程序中,通过用户输入来灵活地中断for或while循环的执行。我们将探讨如何使用BufferedReader类来接收用户输入,并在循环内部判断输入是否为特定退出指令,从而实现程序的动态控制。同时,也会提供代码示例和注意事项,帮助你编写更健壮、更易维护的Java代码。 使用B…

    2026年9月29日 • 用户投稿
    000
  • 前端开发如何安装Sublime_Sublime前端环境搭建教程

    前端开发如何安装Sublime_Sublime前端环境搭建教程前端开发如何安装Sublime_Sublime前端环境搭建教程前端开发如何安装Sublime_Sublime前端环境搭建教程前端开发如何安装Sublime_Sublime前端环境搭建教程

    首先安装Sublime Text并配置Package Control插件管理器,接着安装Emmet、HTML-CSS-JS Prettify等前端插件,然后设置文件类型关联以正确识别.html、.css、.js文件语法,最后通过快捷键配置实现代码格式化功能。 如果您尝试在前端开发中使用 Sublim…

    2026年9月29日 • 用户投稿
    1700
  • GPU功耗超1000W 微软发布芯片级液冷散热技术:温度骤降65%

    GPU功耗超1000W 微软发布芯片级液冷散热技术:温度骤降65%GPU功耗超1000W 微软发布芯片级液冷散热技术:温度骤降65%GPU功耗超1000W 微软发布芯片级液冷散热技术:温度骤降65%GPU功耗超1000W 微软发布芯片级液冷散热技术:温度骤降65%

    9月24日,随着ai技术的快速发展,高性能芯片尤其是ai gpu的需求激增,但随之而来的功耗问题也日益严峻。下一代gpu的功耗预计将突破1000w,带来散热与能效方面的巨大挑战。 为应对这一难题,微软推出了一项创新的芯片级液冷解决方案——microfluidics(微流体)技术。该技术通过在硅芯片背…

    2026年9月29日 • 用户投稿
    100
  • 怎么用豆包AI帮我生成Docker配置 用AI快速创建最佳容器化方案的秘诀

    怎么用豆包AI帮我生成Docker配置 用AI快速创建最佳容器化方案的秘诀怎么用豆包AI帮我生成Docker配置 用AI快速创建最佳容器化方案的秘诀怎么用豆包AI帮我生成Docker配置 用AI快速创建最佳容器化方案的秘诀怎么用豆包AI帮我生成Docker配置 用AI快速创建最佳容器化方案的秘诀

    豆包ai能高效生成并优化docker配置,关键在于提问方式和信息完整度。1. 明确应用类型、依赖及部署需求,如服务语言、数据库、端口暴露等;2. 提供现有配置文件让ai检查安全与性能问题;3. 常见优化建议包括使用alpine镜像、多阶段构建、非root运行等;4. 可要求生成不同环境的配置文件(开…

    2026年9月29日 • 用户投稿
    100
  • Java中将当前时间转换为秒数

    Java中将当前时间转换为秒数Java中将当前时间转换为秒数Java中将当前时间转换为秒数Java中将当前时间转换为秒数

    本文介绍了如何在Java中将当前时间转换为自当天开始的秒数,并提供使用java.time.LocalTime类的示例代码。通过LocalTime.now()获取当前时间,并使用toSecondOfDay()方法将其转换为秒数。同时,还介绍了如何处理时区问题以及如何使用更易读的方式定义目标时间。 在J…

    2026年9月29日 • 用户投稿
    100
  • Mac如何设置静态IP地址_Mac网络手动配置静态IP教程

    Mac如何设置静态IP地址_Mac网络手动配置静态IP教程Mac如何设置静态IP地址_Mac网络手动配置静态IP教程Mac如何设置静态IP地址_Mac网络手动配置静态IP教程Mac如何设置静态IP地址_Mac网络手动配置静态IP教程

    首先将Mac的网络配置从DHCP改为手动,依次设置静态IP、子网掩码、路由器地址,并配置DNS服务器,最后通过终端ping命令验证网络连通性和域名解析是否正常。 如果您需要为您的Mac设备分配一个固定不变的网络地址以便于远程访问或服务器托管,那么您可能需要将网络配置从自动获取改为手动指定。以下是完成…

    2026年9月29日 • 用户投稿
    100
  • Safari浏览器怎么关闭标签页预览_Safari浏览器标签页缩略图预览关闭方法

    Safari浏览器怎么关闭标签页预览_Safari浏览器标签页缩略图预览关闭方法Safari浏览器怎么关闭标签页预览_Safari浏览器标签页缩略图预览关闭方法Safari浏览器怎么关闭标签页预览_Safari浏览器标签页缩略图预览关闭方法Safari浏览器怎么关闭标签页预览_Safari浏览器标签页缩略图预览关闭方法

    可通过Safari偏好设置关闭标签页预览功能,进入设置→标签页→取消勾选“在标签页中显示网站预览”;配合快捷键如Command+Shift+Tab切换标签,或启用系统辅助功能中的减少动态效果,进一步优化浏览体验。 如果您在使用Safari浏览器时发现标签页以缩略图形式预览显示,影响浏览效率或视觉体验…

    2026年9月29日 • 用户投稿
    200
  • windows怎么安装补丁包.msu文件_windows .msu格式补丁包的安装方法

    windows怎么安装补丁包.msu文件_windows .msu格式补丁包的安装方法windows怎么安装补丁包.msu文件_windows .msu格式补丁包的安装方法windows怎么安装补丁包.msu文件_windows .msu格式补丁包的安装方法windows怎么安装补丁包.msu文件_windows .msu格式补丁包的安装方法

    首先通过命令提示符使用wusa命令安装.msu补丁,其次可双击文件图形化安装,最后也可用PowerShell调用wusa.exe完成部署,三种方法均需按提示重启系统应用更新。 如果您下载了Windows系统的补丁包但不确定如何正确安装.msu格式的更新文件,可能是由于系统未正确识别或手动安装流程不熟…

    2026年9月29日 • 用户投稿
    100
  • Linux CPU系统资源占用过高问题解析

    Linux CPU系统资源占用过高问题解析Linux CPU系统资源占用过高问题解析Linux CPU系统资源占用过高问题解析Linux CPU系统资源占用过高问题解析

    Linux CPU系统资源占用过高问题解析 在日常使用Linux系统的过程中,我们可能会遇到CPU资源占用过高的问题,这会导致系统响应变慢甚至影响系统的正常运行。本文将深入分析Linux系统中CPU资源占用过高的原因及解决方法,并给出具体的代码示例。 一、原因分析 进程占用CPU过高:有些进程占用C…

    2026年9月29日 • 用户投稿
    000
  • 如何在Power BI中集成AI Power BI使用AI视觉分析数据

    如何在Power BI中集成AI Power BI使用AI视觉分析数据如何在Power BI中集成AI Power BI使用AI视觉分析数据如何在Power BI中集成AI Power BI使用AI视觉分析数据如何在Power BI中集成AI Power BI使用AI视觉分析数据

    在power bi中集成ai需多步骤实现,而非简单添加模块。1. 使用内置ai视觉分析功能如“分解树”和“关键影响因素”快速识别数据模式;2. 通过azure服务如anomaly detector进行复杂数据分析并可视化结果;3. 在power query中利用ai辅助清洗数据,提升效率;4. 自行…

    2026年9月29日 • 用户投稿
    100
  • 怎样为公司批量安装Sublime_Sublime企业部署安装指南

    怎样为公司批量安装Sublime_Sublime企业部署安装指南怎样为公司批量安装Sublime_Sublime企业部署安装指南怎样为公司批量安装Sublime_Sublime企业部署安装指南怎样为公司批量安装Sublime_Sublime企业部署安装指南

    首先准备标准化安装包和配置文件,再通过组策略或脚本批量部署,随后配置中央许可,最后验证安装与设置一致性。 如果您需要为公司内的多台计算机安装Sublime Text编辑器,以实现统一开发环境配置,则可以通过自动化脚本和集中化配置管理来完成批量部署。以下是实现企业级批量安装的具体步骤: 一、准备安装包…

    2026年9月29日 • 用户投稿
    400
  • 文心一言官方主页直达链接 文心一言语言模型主页官方访问地址

    文心一言官方主页可通过百度智能云平台访问,官网地址为https://yiyan.baidu.com,用户需用百度账号登录或注册后使用,可体验文本生成、图像创作、代码编写等功能,部分高级功能需开通会员或企业权限,注意辨别官网以防假冒。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使…

    2026年9月29日
    100

发表回复

登录后才能评论
关注微信