「奇技淫巧」Arch Linux S.M.A.R.T. 硬盘状态监控
自己的树每派一直都挂着一个移动硬盘、今天心血来潮想看一下硬盘的运行状态 (怕供电不稳定、出问题) ,在查找资料的时候、发现了一个有趣的东西 smartd
、它以守护进程的方式对硬盘运行状态进行监控、如果出现什么问题还能够第一时间推送邮件通知(看起来对 NAS 用户友好)。
配置方式(Arch 系)
安装所需软件包
sudo pacman -Sy smartmontools
运行测试
smartmontools
包中包含了 smartctl
和 smartd
。
smartctl 是一个命令行工具,它控制内置于大多数 ATA/SATA 和 SCSI/SAS 硬盘驱动器和固态驱动器中的自我监控、分析和报告技术 (SMART) 系统。
-i/--info
选项打印有关设备的各种信息,包括 SMART 是否可用和启用:
# smartctl --info /dev/sda | grep 'SMART support is:'
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
如果对应的硬盘没有启用 SMART 你也可以手动启用:
# smartctl --smart=on /dev/<device>
您还可以查看最近的测试结果列表和有关设备的详细信息:
# smartctl -l selftest /dev/<device>
# smartctl -a /dev/<device>
配置 smartd
硬盘监控配置
smartd 守护程序监视 SMART 状态并在出现问题时发出通知。它可以使用 systemd 进行管理并使用 /etc/smartd.conf
配置文件进行配置。
smartd 默认会对所有的硬盘启用监控、如果你想指定设备、可以使用硬盘名称或者 UUID 进行指定。
- 默认
/etc/smartd.conf
DEVICESCAN -a
- 指定硬盘名称
/etc/smartd.conf
/dev/sda -a
/dev/sdb -a
- 指定 UUID
$ ls -lah /dev/disk/by-uuid/
lrwxrwxrwx 1 root root 9 Nov 5 22:41 820cdd8a-866a-444d-833c-1edb0f4becac -> ../../sde
lrwxrwxrwx 1 root root 10 Nov 5 22:41 b51b87f3-425e-4fe7-883f-f4ff1689189e -> ../../sdf2
lrwxrwxrwx 1 root root 9 Nov 5 22:42 ea2199dd-8f9f-4065-a7ba-71bde11a462c -> ../../sda
lrwxrwxrwx 1 root root 10 Nov 5 22:41 fe9e886a-8031-439f-a909-ad06c494fadb -> ../../sdf1
/etc/smartd.conf
/dev/disk/by-uuid/820cdd8a-866a-444d-833c-1edb0f4becac -a
邮件发送配置
- 安装所需依赖
-
smtp-forwarder
-
s-nail
sudo pacman -Sy --asdeps smtp-forwarder
sudo pacman -Sy --asdeps s-nail
- 配置邮件服务器
/etc/mail.rc
set ssl-verify=ignore
set nss-config-dir=/etc/pki/nssdb
set from=xxx@163.com
set smtp=smtps://smtp.163.com:465
set smtp-auth-user=xxx@163.com
set smtp-auth-password=1234567890
set smtp-auth=login
- smartd 开启邮件提醒
/etc/smartd.conf
DEVICESCAN -m address@domain.com
-M test
选项会导致每次 smartd 守护程序启动时发送测试电子邮件:
/etc/smartd.conf
DEVICESCAN -m address@domain.com -M test
其它高级参数请详细参照 archlinux wiki
https://wiki.archlinux.org/title/S.M.A.R.T.
效果展示
-
Linux
感觉还不错
其它的系统还没测试过,不过如果有相应的软件包的话,我觉得配置可以通用