ハードディスクのSMART機能でエラーが発見された場合、管理者にメールを送信するように設定する。
■ smartmontoolsのインストール
# apt-get install smartmontools
■ SMART値が表示できるかチェック
# smartctl -a /dev/sda
smartctl version 5.38 [i686-pc-linux-gnu] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/
=== START OF INFORMATION SECTION ===
Model Family: Seagate Barracuda 7200.11
Device Model: ST3500320AS
Serial Number: ********
Firmware Version: SD1A
User Capacity: 500,107,862,016 bytes
Device is: In smartctl database [for details use: -P show]
ATA Version is: 8
ATA Standard is: ATA-8-ACS revision 4
Local Time is: Sun Jun 13 13:04:43 2010 JST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
~ 以下省略 ~
SMARTテストをしてみる。テスト結果は、smartctl -a で表示できる。
# smartctl -t short /dev/sda
■ 自動起動の設定
サービスの起動チェック。 ランレベル2がoffなら、onに変更しておく
# sysv-rc-conf --list | grep smart
smartmontool 1:off 2:on 3:on 4:on 5:on
常駐化の設定をする。 機能設定は/etc/smartd.conf で行うので、ディスク指定やインターバル指定は行わない。
/etc/default/smartmontools
# List of devices you want to explicitly enable S.M.A.R.T. for
# Not needed (and not recommended) if the device is monitored by smartd
#enable_smart="/dev/hda /dev/hdb"
# uncomment to start smartd on system startup
start_smartd=yes ← この設定のみ有効化する
# uncomment to pass additional options to smartd on startup
#smartd_opts="--interval=1800"
■ 設定ファイルの編集
/dev/sdaのSATAディスクをチェックして、エラーの場合に root@localhost にメールするよう設定する。
/etc/smartd.conf
# The word DEVICESCAN will cause any remaining lines in this
# configuration file to be ignored: it tells smartd to scan for all
# ATA and SCSI devices. DEVICESCAN may be followed by any of the
# Directives listed below, which will be applied to all devices that
# are found. Most users should comment out DEVICESCAN and explicitly
# list the devices that they wish to monitor.
#DEVICESCAN -m root -M exec /usr/share/smartmontools/smartd-runner ← コメントアウトする
/dev/sda -a -d ata -m root@localhost
■ smartdのリスタートとエラーチェック
# /etc/init.d/smartmontools restart
* Restarting S.M.A.R.T. daemon smartd [ OK ]
上記のように常駐したという表示が出たら、/var/log/syslog にエラーが吐き出されていないかチェックする。