用smartd守护进程替代cron脚本实现硬盘自动巡检更可靠,需安装smartmontools、配置/etc/smartd.conf启用-a/-o on/-s on等参数、指定邮件告警,并通过-sudo smartd -c ... -t和-t down验证配置与告警。

直接用 smartd 守护进程做自动巡检,比写 cron 脚本更可靠、更省心。它能持续监听硬盘状态,按预设策略触发检查、记录日志,还能在异常时发邮件告警——这才是生产环境该用的方式。
确认 smartmontools 已安装并启用
先确保基础工具就位:
- Debian/Ubuntu:
sudo apt install smartmontools - RHEL/CentOS:
sudo yum install smartmontools或sudo dnf install smartmontools - 安装后检查版本:
smartctl --version(建议 ≥ 7.0) - 启动服务:
sudo systemctl enable --now smartd
编辑 /etc/smartd.conf 配置监控策略
默认配置通常只扫描支持 SMART 的磁盘,但需要手动开启关键功能:
- 注释掉或删除默认的
DEVICESCAN行(它不带告警,仅基础扫描) - 为每块关键磁盘单独添加一行,例如:
/dev/sda -a -o on -S on -n standby,q -m admin@company.com -M exec /usr/share/smartmontools/smartd-runner - 参数说明:
–-a:启用所有 SMART 功能(包括自检和属性监控)
–-o on:开启自动离线测试(每4小时运行一次轻量检测)
–-S on:保存 SMART 属性历史变化
–-n standby,q:跳过休眠设备,避免误报
–-m:指定告警收件人邮箱
–-M exec:使用系统自带的邮件包装器发告警
验证配置并测试告警
配置改完别急着重启,先做两件事:
- 语法检查:
sudo smartd -c /etc/smartd.conf -t(返回 “Configuration file /etc/smartd.conf checked successfully” 才算通过) - 手动触发一次测试告警:
sudo smartd -c /etc/smartd.conf -T down(会模拟一次“磁盘即将失效”事件,看邮件是否收到) - 查看日志确认运行状态:
sudo journalctl -u smartd -n 20 -f,留意是否有 “Monitoring” 或 “Device opened” 字样
重点关注 smartd 日志里的三类信号
smartd 不只是发邮件,它把所有异常都记进日志,日常巡检只需盯住这几条:
- “Failing now”:SMART 自评已失败,硬盘必须立即下线
- “Pre-failure”:某项属性(如 Current_Pending_Sector)越过阈值,属于高危预警
- “TEST PASSED” / “TEST FAILED”:定期自检结果,长期出现 FAILED 是介质老化的明确信号
- 日志位置:
/var/log/syslog(Debian/Ubuntu)或/var/log/messages(RHEL/CentOS)











