硬盘休眠状态监控脚本-带可视化查询

硬盘休眠状态监控脚本-带可视化查询
硬盘休眠状态监控脚本-带可视化查询

我想知道自己的 NAS 硬盘什么时候休眠什么时候活动,想知道一天被唤醒多少次。所以写了这个脚本。 DiskMonitorV1.0_20260610

这个脚本是按自己的需求写的,主要实现以下功能 1 )实时查询硬盘休眠状态并记录 2 )后台定时查询并记录硬盘状态 3 )统计 24h 后硬盘唤醒次数及总唤醒时间 4 ) 24h 硬盘活动图表 5 )最大化精简脚本,不额外安装依赖。只用了 hdpram 查询硬盘和 python3 运行 http 服务

一般情况下,适用于所有的 linux ,只要你安装了 hdparm 和 python3 。

实际运行截图如下: status

log

项目文件

/var/www/hddstatus/
├── config              # 统一配置文件
├── disk_events.log     # 事件日志(运行时生成)
├── cache/              # 状态缓存目录
└── cgi-bin/
       ├── status          # 硬盘状态页
       ├── log             # 24h 趋势图表 + 日志
       ├── log-full        # 全部日志纯文本
       └── update-disk-info # 更新硬盘名称

/usr/local/bin/
├── disk_monitor.sh           # 后台监控
├── disk_monitor_startup.sh   # 启动时初始化
└── disk_info.sh              # 硬盘名称缓存生成

/etc/systemd/system/
├── disk-monitor.service
└── hddstatus.service

/etc/sudoers.d/
└── hddstatus

使用教程:

使用 root 登录,或者 sudo
chmod +x diskmonitor_install.sh
chmod +x diskmonitor_uninstall.sh
安装
./diskmonitor_install.sh
卸载
./diskmonitor_uninstall.sh

状态页: http://机器 IP:58008/cgi-bin/status

日志页: http://机器 IP:58008/cgi-bin/log

修改配置: nano /var/www/hddstatus/config 然后 systemctl restart disk-monitor hddstatus

config 配置文件说明 1 )硬盘要监控几个,填在 DISKS 里 2 )后台监控时隔,默认 5 分钟,没必要太频繁。因为时隔为 5 分钟监控一次,所以记录的唤醒休眠时间可能会有几分钟偏差。 3 ) Web 服务端口,字面意思 4 )硬盘自定义显示名称,前面 DISKS 里有几块硬盘这里就加几条记录 5 ) hdparm 程序目录,自己按自己机器上的填,一般不用动。 6 )其余日志文件参数不要动。

# ========== 硬盘监控统一配置 ==========

# 要监控的硬盘设备(空格分隔)
DISKS="/dev/sda /dev/sdb"

# 后台监控检查间隔(秒),建议 ≥ 硬盘 spindown 时间
MONITOR_INTERVAL=300

# Web 服务端口
WEB_PORT=58008

# 硬盘自定义显示名称(可选)
# 格式:LABEL_设备名="显示名称"
LABEL_sda="WD-500G"
LABEL_sdb="GS-480G"

# hdparm 路径
HDPARM="/usr/sbin/hdparm"

如果硬盘很老,频繁 hdparm 查询硬盘状态会影响硬盘休眠(很少见),那就只能加大监控的间隔或不用这个脚本。 不对这个脚本对你们硬盘/机器带来的任何影响负责。需要自取。

脚本 链接: https://pan.quark.cn/s/9dd16addf27f

来源: V2EX - 技术查看原文