Windows系统下监控Dell服务器硬盘
命令工具参考:PercCli工具
写个脚本(bash)
不会写 CMD(bat)、PowerShell (ps1) 的脚本,这里使用 Gitbash 的模拟工具
这个脚本是在Windows下执行的, 我就直接放在了工具目录: C:\Dell\MonitorDiskForWin.sh
| Bash |
|---|
| #!/bin/bash
# 生成硬盘状态文件,方便后续查阅
powershell -Command "C:\Dell\perccli64.exe /call /eall /sall show all logfile=c:\Dell\diskstatus.txt"
hostip="192.168.68.15"
sernum="6FR8GL2"
disknum=8
# hostip="192.168.68.16"
# sernum="6HVDGL2"
# disknum=8
# 发送企业微信告警
send_wechat_alert() {
local msg="$1"
local key="61cfc73e-a834-4cd1-9c0e-ddde9c414cc9"
local url="https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=$key"
# 使用 printf 将变量嵌入 JSON,再通过管道传给 curl
printf '{"msgtype":"text","text":{"content":"%s"}}\n' "$msg" | \
curl -s -X POST -H "Content-Type: application/json" --data-binary @- "$url"
}
online=$(powershell -Command "C:\Dell\perccli64.exe /call /eall /sall show"| grep -c " Onln ")
info=$[ disknum - online ]
send_wechat_alert "Dell服务器,IP:${hostip},列号:${sernum}, 不在线硬盘数${info}"
|
存好脚本后,在任务计划程序创建一个定时任务,实现定时告警
创建任务
常规:
- 名称:monitordisk
- 描述:监控硬盘状态
- 不管用户是否登录都要运行(我使用的管理员账户)
- 使用最高权限运行
触发器:
- 开始任务:按预定计划
- 设置:每天10:00,每隔1天发生一次
- 勾选已启用
操作:
- 操作:启动程序
- 程序或脚本:浏览脚本路径(C:\Dell\MonitorDiskForWin.sh)
条件:
- 电源:勾选-只有在计算机使用交流电源时才启动此任务
其它基本默认,可以按需修改