如何在磁盘错误时运行命令?

如何在磁盘错误时运行命令?

系统:Debian Squeeze

用途:任何新磁盘都将被 DoD 擦除的系统。

我正在寻找一种方法来在内核抛出的磁盘错误上触发命令,有时我们会遇到坏磁盘,只需要将其擦除即可。

日志中常见的行包括

Jan 15 10:34:33 drivekiller9k kernel: [339274.100020] usb 2-3: reset high speed USB device using ehci_hcd and address 51
Jan 15 10:34:33 drivekiller9k kernel: [339274.233729] sd 176:0:0:1: [sdl] Unhandled error code
Jan 15 10:34:33 drivekiller9k kernel: [339274.233733] sd 176:0:0:1: [sdl] Result: hostbyte=DID_ABORT driverbyte=DRIVER_OK
Jan 15 10:34:33 drivekiller9k kernel: [339274.233737] sd 176:0:0:1: [sdl] CDB: Write(10): 2a 00 00 34 b8 70 00 00 f0 00
Jan 15 10:34:33 drivekiller9k kernel: [339274.233781] __ratelimit: 20 callbacks suppressed
Jan 15 10:34:33 drivekiller9k kernel: [339274.233815] lost page write due to I/O error on sdl

我想要一种方法,只需运行一个 shell 脚本即可终止擦除过程并写入日志,执行此操作的正确方法是什么?

答案1

您可以使用智能工具使用提供的守护程序来监视磁盘健康状况smartd。一些例子

答案2

您可以使用Shell executersyslog 的 ACTION 来触发针对特定日志消息条目的操作(例如您的恢复脚本)。请参阅man rsyslog.conf以了解详细信息。

相关内容