公司最近在用qwenpaw学习和skill,领导让在项目中使用提高效率,我也有此想法故开始了实践。目前实现了我项目中用到的测试主机的C盘容量监控总共21台以下是效果图:
后续还想增加空闲占比太低则弹出提示。以下是Ai总结:
磁盘监控系统 — 实现总结
一、目标
批量查询多台 机器的 C 盘空闲/总容量,生成可视化前端页面,并定时自动刷新。
二、核心文件
| 文件 | 路径 | 说明 |
|---|---|---|
| check_all_disks.ps1 | C:\Users\xli23\Desktop\workStation\ | 查询所有机器磁盘,输出 JSON |
| disk_status.json | 同上 | 查询结果数据文件,供前端读取 |
| disk_dashboard.html | 同上 | 前端可视化页面 |
| server.py | 同上 | Python HTTP 服务,端口 8080 |
三、实现方法
1. 磁盘查询()
- 用
dir \\主机\共享名获取空闲字节数 - 用
Scripting.FileSystemObject.GetDrive()获取总容量 - 计算空闲占比,按阈值打状态标签:
< 5%→critical(红)< 15%→warning(黄)≥ 15%→ok(绿)- 访问失败 →offline(灰)
- 结果输出为
disk_status.json
2. 前端页面( + JS)
- 读取
disk_status.json渲染表格 - 顶部汇总卡片(总数/正常/警告/严重/离线)
- 进度条直观显示空闲占比
- 支持按状态筛选、主机名搜索、列排序
- 点击刷新按钮重新读取 JSON
3. 服务(Python)
server.py用http.server在端口 8080 提供静态文件服务- 访问地址:
http://localhost:8080/disk_dashboard.html
4. (QwenPaw Cron)
- 每小时整点自动执行 PS 脚本刷新数据
- Cron 表达式:
0 * * * * - Job ID:
c04dc361-a7f4-4b4a-be1d-d13cba681e61
四、机器共享名规律
| 共享名 | 机器类型 | 代表机器 |
|---|---|---|
| C | HP Z2 系列 | lunzhou66/67/68/71/74/98 等 |
| c_drive | HP Mini 800(STARLAB) | lunzhou85-93/96/112/118/119 等 |
| C | 其他 | lunzhou41/lunzhou-cwf19 |
五、遇到的问题及
| 问题 | 原因 | 解决方法 |
|---|---|---|
| ping 判断离线但实际在线 | 短主机名无法解析,需加 .ap.qualcomm.com | 改用 net view 或直接访问共享路径验证 |
| \lunzhou37\C 超时 | DNS 解析失败,主机名不通 | 改用 IP \10.64.29.14\C 访问 |
| 共享名不统一 | 不同机型共享名不同(C vs c_drive) | 先用 net view \主机 查共享名再访问 |
| PowerShell 多行命令在 cmd 中报错 | cmd 不支持换行脚本 | 改写为 .ps1 文件再用 -File 执行 |
| Get-PSDrive 无法查远程共享总容量 | 只支持本地驱动器 | 改用 Scripting.FileSystemObject.GetDrive() |
| System.IO.DriveInfo 不支持 UNC 路径 | .NET 限制 | 改用 COM 对象 Scripting.FileSystemObject |
| 前端 fetch 本地 JSON 被 CORS 拦截 | 浏览器安全限制 | 用 server.py 起 HTTP 服务解决 |
| PowerShell 中文输出乱码 | cmd 编码问题 | 改用英文输出 |
| lunzhou41 无 C 盘共享 | 该机器只共享了 IoTAutomationLog 和 Sahara | 经测试 \lunzhou41\C 实际可访问,直接用 |
原文链接: agent企业项目实战(1) 作者: lixusocool