我正在使用 smartd 来监控文件服务器上内部硬盘的 SMART 运行状况,并提醒我即将发生灾难的迹象。我还想监控将与之一起使用的外部 eSATA 硬盘,但我不知道如何克服这些障碍:
- 作为用于异地备份的外部驱动器,它可能存在也可能不存在。当驱动器“消失”时,如何让 smartd 不“惊慌失措”并向我的电子邮件收件箱发送垃圾邮件?(注意:我还没有测试过,但我假设如果驱动器突然找不到,smartd 将假设驱动器发生灾难性故障。)
- 出于与上述相同的原因,驱动器并不总是例如 /dev/sdf(事实上,一旦我移除当前连接的 USB HDD,下次我连接其中一个时它将是 /dev/sdg!),但我的理解是 by-UUID 和朋友引用分区,而我需要参考设备对于 smartd。如何才能可靠地指向这些外部驱动器,而不必在每次插入时手动更新 /dev/sd* 引用?
在配置文件中使用 DEVICESCAN 似乎是显而易见的选择,因为无论如何我对所有驱动器都使用相同的配置,但据我了解,smartd 仅在启动时扫描设备,并且我宁愿避免每次插入其中一个驱动器时都必须重新启动守护进程(除非这是解决问题的最优雅的方法)。
答案1
您应该能够使用 udev 规则实现您的需要。
您可以创建 /dev符号链接提供对外部驱动器的一致访问(由序列/型号/等等)。然后可以在 smartd 配置中引用它们,并标记为-d removable
确保当外部驱动器不存在时 smartd 启动。
你可能仍需要重新启动 smartd,但 udev 也可以通过以下方式执行此操作:跑步指示。