「奇技淫巧」Arch Linux S.M.A.R.T. 硬盘状态监控

自己的树每派一直都挂着一个移动硬盘、今天心血来潮想看一下硬盘的运行状态 (怕供电不稳定、出问题) ,在查找资料的时候、发现了一个有趣的东西 smartd 、它以守护进程的方式对硬盘运行状态进行监控、如果出现什么问题还能够第一时间推送邮件通知(看起来对 NAS 用户友好)。

配置方式(Arch 系)

安装所需软件包

sudo pacman -Sy smartmontools

运行测试

smartmontools 包中包含了 smartctlsmartd

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

邮件发送配置

  1. 安装所需依赖
  • smtp-forwarder

  • s-nail

sudo pacman -Sy --asdeps smtp-forwarder
sudo pacman -Sy --asdeps s-nail
  1. 配置邮件服务器
/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
  1. 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.

效果展示

image.png