Linuxにて異常なSMART値のときにメールを送る

投稿者: | 5月 18, 2025

はじめに

NASだったりメールサーバだったりをLinuxで立てると、いくらRaidとはいえ、壊れた時に気づいて交換しないと意味がありません。そこで、HDDが壊れたらメールで送ってもらうことにします。

メールのセットアップ

1. mailutilsのインストール
sudo apt install mailutils

2. 動作確認
echo <本文> | mail -s <タイトル> <送信先メールアドレス>
これだけでメールが送れます。
-s <タイトル> : タイトルを指定
-r <送り主メールアドレス> : 送り主メールアドレスを指定
-c <Ccメールアドレス> : Ccで送りたい人を指定
-b <Bccメールアドレス> : Bccで送りたい人を指定

Smartctlのセットアップ

1. smartctlをインストール
sudo apt install smartmontools

基本情報の表示
sudo smartctl -i /dev/sd<x>
健康状態の表示
sudo smartctl -H /dev/sd<x>
詳細情報の表示
sudo smartctl -a /dev/sd<x>
エラーの表示
sudo smartctl -l error /dev/sd<x>
で確認できます。

2. メールの送信テスト
/etc/smartd.conf

DEVICESCAN -d removable -n standby -m root -M exec /usr/share/smartmontools/smartd-runner
を#でコメントアウトして、
DEVICESCAN -m <メールアドレス> -M test
を書き加え、
sudo systemctl restart smartd.service
で再起動すると、テストのメールが送られてきます。

3. 本格的なスキャンの設定
/etc/smartd.conf
の先ほどの部分を
DEVICESCAN -a -n standby,q -m <メールアドレス>
とかに変更します。
30分に一度(smartdで決まっている)スキャンを行い異常が見つかったらメールを送信するといった感じのものです。温度も気にしたいのであれば-W 4,35,40(4度以上変化or35度以上でログ、40度以上でメール)とかを追加すると良いと思います。

オプション
-a : 全ての属性を監視
-o on : 自動オンラインデータ収集を有効化
-S on : 自動属性保存を有効化
-n standby,q : ディスクが待機中の時チェックを実行せず、ディスクアクセスが発生しないようにログに書き込まない。
standby,10,q
のように表記すると、10回スキップし、11回目はディスクが待機中であってもチェックを実施する。
-s : スケジュールを指定
-s T/MM/DD/d/HH
・T/L : ロングセルフテスト
・S : ショートセルフテスト
・MM : 月
・DD : 日
・d : 曜日
・HH : 時間
-W : 温度の監視。-W 4,35,40(4度以上変化or35度以上でログ、40度以上でメール)
-m : メールの送信先
-M : 追加で実行するスクリプトの指定

参考文献

[1] Qiita-@shuntaro_tamura(田村 俊太郎)「[mailコマンド]Linuxからメールを送る」

[2] Zenn-ひで「SMART機能とsmartctlコマンド」

[3] jEdit Wiki「LinuxでHDDのSMARTをモニタリングする」

[4] ArchWiki「S.M.A.R.T.」

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)