それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

S.M.A.R.Tの値をsmartd で監視してメールを送る

HDD のsmart 状態を監視する

HDD のSMARTで値を監視して、ハードウェアの状態が変化したり、故障が近づいたらメール通知しておくことにして、少し安心したい。

準備

sudo apt install smartmontools

smartd の有効化

smartmontoolsを入れたら smartd がついてくる。

sudo systemctl status smartmontools
sudo  systemctl enable  smartd

smartd の設定

設定ファイルは /etc/smartd.conf になる。 以前では /etc/default にあったらしいけど、systemd導入後のDebianだから変わってると思う。

メール設定

さきに、通知が出来る sendmail を設定しておく必要がありそうだったので、設定した→ Deiban/Exim4を設定して、gmailで通知メールを送出する。 - それマグで!

通知の送信先を設定する。

DEVICESCAN -m takuya@example.com

監視するデバイスの設定

ディスクデバイスのパスを指定する。

/dev/sda -a 
/dev/disk/by-uuid/beef5axx-50ed-4ad8-xxx-xxxxxxxxxxxxx -a 

全部見るなら

DEVICESCAN -a

ちゃんとメールが届くかテストする。

DEVICESCAN -M test

実際には、この設定をまとめて書く

DEVICESCAN -a -M test -m takuya@example.com 

ハードディスクの一つずつに設定を書いた場合

/dev/sda -a -M test -m takuya@example.com 
/dev/sdb -a -M test -m takuya@example.com 

みたいにドンドン書く

何か実行させたい時

なにか、実行させたいときは、こんな感じにexec を掛けばいい。

-M exec path/to/file

Debian のデフォルトの場合は

/usr/share/smartmontools/smartd-runner 

が起動することになってた。

此のスクリプトの中で、次のディレクトリにあるファイルが状況に応じて実行されるように設定されてた。

/etc/smartmontools/run.d

実際にやってみた例。

takuya@:~$ sudo -e /etc/smartd.conf
takuya@:~$ sudo  systemctl enable  smartd
takuya@:~$ sudo  systemctl start smartd
takuya@:~$ sudo  systemctl status  smartd
● smartd.service - Self Monitoring and Reporting Technology (SMART) Daemon
   Loaded: loaded (/lib/systemd/system/smartd.service; enabled)
   Active: active (running) since 土 2017-03-04 03:41:43 JST; 1 day 23h ago
     Docs: man:smartd(8)
           man:smartd.conf(5)
 Main PID: 27135 (smartd)
   CGroup: /system.slice/smartd.service
           └─27135 /usr/sbin/smartd -n --interval=172800

 3月 06 03:27:54 acid systemd[1]: Started Self Monitoring and Reporting Technology (SMART) Daemon.
Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.

参考資料

https://wiki.archlinuxjp.org/index.php/S.M.A.R.T.#.E3.83.87.E3.83.90.E3.82.A4.E3.82.B9.E3.81.AE.E7.9B.A3.E8.A6.96