我最近在家庭服务器上设置了 Debian 9,我想对我的 HDD 运行一些 SMART 检查,然后在有任何问题时收到警报。理想情况下,我希望警报进入我的 Slack 实例,因为我已将它连接到我的智能手机并发现它非常有用(我的 UPS 已经收到警报,并且那里的 ping 失败)。
我一直在研究 smartd/smartctl,但我似乎找不到将通知放入 Slack 的方法。
我希望可以在某处调用一些 bash 脚本来处理通知并调用另一个(python)脚本将通知发送到 Slack。
(编辑:只是为了澄清我已经有了 Slack Notifications 的 Python 脚本,因为我在其他地方使用它,所以我们在那里很好)
编辑 以下两种解决方案都经过测试,对我来说效果很好。我选择了邮件 + 脚本解决方案,因为它涵盖了我在 Slack 因任何原因无法工作的情况下,但两者都很可靠,我感谢 RalfFriedl 为我包括环境变量。
这是为了
sda
. 每个设备添加一条线路。或者,替换/dev/sda
为DEVICESCAN
监控所有检测到的设备。确保
/my/script
不会花费太长时间,因为它会挂起smartd
直到完成。/my/script
将使用各种环境变量运行。搜索。man smartd.conf
_SMARTD_DEVICE
例如另一个变量:“SMARTD_FULLMESSAGE
设置为来自 smartd 的整个电子邮件警告消息字符串的内容。”要测试消息传递,请使用此临时配置文件启动 smartd,以发送测试消息:
我没有测试过上述任何一个。我假设您已经确定是否需要
-d
通过使用smartctl
. (我不知道如何-d
和 DEVICESCAN 交互)。我还假设默认测试-a
符合您的设备所需。例如,长手册页中提到的一件事是,在重新分配坏扇区后,某些驱动器会显示误报:https ://superuser.com/a/539040/110495如果要
smartd
调用脚本,请参阅选项-w
:该脚本通常用于发送电子邮件。使用以下环境变量调用它:
有关详细信息,请参阅
man smartd
和man smartd.conf
。