絖綛 N@i.jp  昨日:00040502
 今日:00036196
 総計:00248960
keywords
管理者専用
  Post   Add link   Control Panel 































新しいトピック
最新:04/16 19:55


新しいコメント
最新:07/28 16:47






管理人へMAIL

プライバシーポリシー

LS-VLでsmartdを有効化してみた(4)

やっぱりテスト結果の定時報告が欲しい


 smartd から呼び出せるスクリプト "/usr/local/bin/mail.sh" まで作ったのですが、やはり何か異常を検出しないとメールを送って来ないようですなぁ。しかしLS-VLには既に定時報告する機能(管理Webの「システム」→「メンテナンス」→「メール通知設定」)があり、HDDにエラーが起きたかどうかをメールしてくれる。まぁ内容はエラー発生回数だけのようで、エラー発生時の詳しい情報までメールしてくれるのかは疑問だけど。まぁ、これでもいいかぁって一旦は思ったんだけどね。

 しかし調べてみたら、このHDDのエラー発生回数は(LS-VLの場合)"/sys/block/sda/nr_errs" というファイルから得ている様子。良く知らないのだけど、多分これはファイルシステムの直情報じゃないかな。つまり、実際にHDDに対する入出力が発生して、その結果から初めてI/Oエラーが起きた事を検知し "/sys/block/sda/nr_errs" ファイルが更新されるのではないかと思う。つまり、エラーが起きた時には既に手遅れで既に不良セクタがいっぱい、なんて可能性もあるんじゃないかい?

 せっかくメール送信するスクリプトも書いたことだし、S.M.A.R.T.情報(セルフテスト結果)を定期的にメールして欲しいなぁ。と思ったので、またこんな簡単なスクリプトを書いてみた。

#!/bin/sh

SMARTCTL="/usr/local/sbin/smartctl"
SMARTOPT="--device=sat --attribute --log selftest"
DEVICE="/dev/sda"
MAIL="/usr/local/bin/mail.sh"
MAILADD="hoge@xxxxx.ne.jp"

$SMARTCTL $SMARTOPT $DEVICE | $MAIL -s "$HOSTNAME smart report" $MAILADD
赤字の部分は送信先メールアドレス

 やっている事は単純。smartctl で HDDの情報とセルフテストの結果を出力させ、それを先に作った "/usr/local/bin/mail.sh" でメール送信しているだけ。

 このスクリプトを cronで1日1回、セルフテストが終わった頃に起動させるようにしてみた。以下の作業は全てrootで行う。

  1. 上のスクリプトを "/etc/cron/cron.d/" 配下に置く。

     置き場所は何処でも良いのだけど、cronで起動される物は皆この場所に置いてあるようなので、その作法に従った。ファイル名も分かりやすい適当な名前で構わない。今回は "send_smart_mail.sh" なんてファイル名にしてみた。(英語のダメダメっぷりが知れるセンスの無いファイル名だ。^^;)

  2. スクリプトに実行権を付ける。
    # chmod +x /etc/cron/cron.d/send_smart_mail.sh
  3. "/etc/cron/crontabs/root" ファイルのバックアップを作成しておく。
    # cd /etc/cron/crontabs
    # cp -p root root.org
  4. crontabコマンドで、1日1回セルフテストが終わっている頃の時刻に先のスクリプトが呼び出されるよう書き加える。

     例えば、こんな感じ。

    # crontab -e
    00 06 * * * /etc/cron/cron.d/send_smart_mail.sh

 これで毎日、午前6時にスクリプトが呼び出され、S.M.A.R.T.情報とセルフテストの結果がメールされて来るはず。試しに "/etc/cron/cron.d/send_smart_mail.sh" 単体で動かしてみたところ、送られて来たメールはこんな感じ。

smartctl version 5.37 [arm-none-linux-gnueabi] Copyright (C) 2002-6 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

=== START OF READ SMART DATA SECTION ===
SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
 1 Raw_Read_Error_Rate     0x000f   114   099   006    Pre-fail  Always       -       67781928
 3 Spin_Up_Time            0x0003   095   093   000    Pre-fail  Always       -       0
 4 Start_Stop_Count        0x0032   100   100   020    Old_age   Always       -       30
 5 Reallocated_Sector_Ct   0x0033   100   100   036    Pre-fail  Always       -       0
 7 Seek_Error_Rate         0x000f   071   060   030    Pre-fail  Always       -       14113190
 9 Power_On_Hours          0x0032   076   076   000    Old_age   Always       -       21490
10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -       0
12 Power_Cycle_Count       0x0032   100   100   020    Old_age   Always       -       30
183 Unknown_Attribute       0x0032   100   100   000    Old_age   Always       -       0
184 Unknown_Attribute       0x0032   100   100   099    Old_age   Always       -       0
187 Unknown_Attribute       0x0032   100   100   000    Old_age   Always       -       0
188 Unknown_Attribute       0x0032   100   100   000    Old_age   Always       -       0
189 Unknown_Attribute       0x003a   100   100   000    Old_age   Always       -       0
190 Temperature_Celsius     0x0022   058   042   045    Old_age   Always   In_the_past 773817892906
191 G-Sense_Error_Rate      0x0032   100   100   000    Old_age   Always       -       0
192 Power-Off_Retract_Count 0x0032   100   100   000    Old_age   Always       -       29
193 Load_Cycle_Count        0x0032   100   100   000    Old_age   Always       -       30
194 Temperature_Celsius     0x0022   042   058   000    Old_age   Always       -       42 (Lifetime Min/Max 0/24)
195 Hardware_ECC_Recovered  0x001a   033   005   000    Old_age   Always       -       67781928
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       0
240 Head_Flying_Hours       0x0000   100   253   000    Old_age   Offline      -       170445777163251
241 Unknown_Attribute       0x0000   100   253   000    Old_age   Offline      -       1079144645
242 Unknown_Attribute       0x0000   100   253   000    Old_age   Offline      -       2976120346

SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Short offline       Completed without error       00%     21473         -
# 2  Short offline       Completed without error       00%     21449         -
# 3  Short offline       Completed without error       00%     21425         -
# 4  Short offline       Completed without error       00%     21401         -
# 5  Short offline       Completed without error       00%     21377         -

 この程度の量だったら毎日メールされて来ても良いだろう。見るべき箇所は、

  • 5 Reallocated_Sector_Ct
  • 194 Temperature_Celsius
  • 197 Current_Pending_Sector
  • SMART Self-test log

と言ったところかな。5 Reallocated_Sector_Ct(不良セクタを代替した数)や197 Current_Pending_Sector(代替待ちの不良セクタ数)の RAW_VALUE が 0でなくなったら警戒した方がいいだろうな。温度もWORSTが60度を越えるようなら危ない。あとはセルフテストの結果。ShortテストはHDDが少々傷んでいてもエラーにならない事が多いようだから、Longテストの結果に注意しよう。


< 過去の記事 [ 2月の 全てのカテゴリ リスト ] 新しい記事 >

2014 calendar
2月
1
2345678
9101112131415
16171819202122
232425262728


掲示板
最新:08/15 17:19


GsBlog was developed by GUSTAV, Copyright(C) 2003, Web Application Factory All Rights Reserved.