ファイルの展開・コピー
- 
 次のファイルを適当なフォルダにコピーしてください。
 以後の説明では<c:\sdb\bin>フォルダにインストールにしたとして説明します。
 | 
| (1) | 
sdbctl.exe | 
Windwos SDBクライアント | 
 
| (2) | 
sdbtask.exe | 
Windwos SDBクライアント(タスク登録用サブセット) | 
 
| (3) | 
sdbwatch.exe | 
Windwos 監視プログラム | 
 
| (4) | 
libpq.dll | 
Windows データベース(PostgreSQL)接続用DLL | 
 
| (5) | 
sdb.def | 
Windoww 設定ファイル | 
 
 
| 
※
 | 
ここでは使わないプログラムも含まれていますが、まとめてインストールしてください。
 |   
 | 
 S.M.A.R.T.情報の確認
- 
 まずはハードディスクのS.M.A.R.T.情報が取得できるか確認します。S.M.A.R.T.情報が正しく取得できないことにはSDBクライアントは利用できません。
 まずはコマンドプロンプトを開いてください。コマンドプロンプトは[スタート]メニューから「プログラム」→「アクセサリ」→「コマンドプロンプト」を選択、実行すると開きます。
 コマンドプロンプトが開いたら、SDBクライアントをインストールしたフォルダに移動します。
 | 
実行例
C:\Documents and Settings\user> cd  \sdb\bin↓ 
 
C:\sdb\bin> 
 |   
 | 
 sdbctl showコマンドを実行して、ハードディスクのS.M.A.R.T.情報が表示できるか確認します。
 | 
実行例
C:\sdb\bin>sdbctl  show↓ 
(省略) 
DBOpen error!
Device disk0
Model   : HDT722520DLAT80
Firmware: V44OA96A
Serial  : VD051BTDDM86GL
Capacity: 200.0G
    ID# S.M.A.R.T. Attribute          Val Wst Ths Flags               RAW Value
      1 Raw Read Error Rate           100 100  16 --1-OP                      0
      2 Throughput Performance        100 100  50 ---1-P                      0
      3 Spin Up Time                  204 204  24 ---1OP         12,896,567,461
      4 Start/Stop Count              100 100   0 -1--O-                     19
      5 Reallocated Sectors Count     100 100   5 11--OP                      0
      7 Seek Error Rate               100 100  67 --1-OP                      0
      8 Seek Time Performance         100 100  20 ---1-P                      0
      9 Power-On Hours                100 100   0 -1--O-                  1,167
     10 Spin Retry Count              100 100  60 -1--OP                      0
     12 Device Power Cycle Count      100 100   0 11--O-                     19
    192 Power off Retract Count       100 100  50 11--O-                     65
    193 Load/Unload Cycle Count       100 100  50 -1--O-                     65
    194 Temperature                   161 161   0 ----O-        158,915,035,170
    196 Reallocation Event Count      100 100   0 11--O-                      0
    197 Current Pending Sector Count  100 100   0 1---O-                      0
    198 Uncorrectable Sector Count    100 100   0 --1---                      0
    199 UltraDMA CRC Error Rate       200 200   0 --1-O-                     13
 |   
 | 
 デバイス(ハードディスク)を指定しないで実行すると物理ドライブdisk0,disk1といった具合に順番に探して表示します。パソコンに複数のハードディスクが接続されている場合、それぞれのハードディスクに結果が表示されます。
 特定のハードディスクの情報だけ確認したい場合は、「sdbctl show --dev disk0」といった具合に--devオプションを指定してください。
  まれにdisk0、disk1の次がdisk3といったように、ドライブ番号が抜けていることがあります。このような場合、自動的に探すのはdisk1まででdisk3は表示されません。disk3の情報を表示したい場合も、は「--dev disk3」といった具合に--devオプションを指定してください。
 | 
実行例
C:\sdb\bin>sdbctl  show  --dev  disk0↓ 
(省略) 
 |   
 | 
 sdbctl showを実行してもS.M.A.R.T.情報が表示されない場合、SDBクライアントは使用できません。
 RAIDを構成しているハードディスクや、USBやIEEE139で4接続している場合はS.M.A.R.T.情報は表示できないことがあります。
 通常のATA/IDEハードディスクなのにS.M.A.R.T.情報が表示されない場合は、パソコンやマザーボードのBIOS設定でS.M.A.R.T.機能が有効になっているか確認してください。
 RAW Value表示形式の調整
- 
 sdbctl showを実行してもS.M.A.R.T.情報が表示できければ問題はありませんが、ハードディスクによっては表示形式を指定したほうがいい場合があります。
 一部のハードディスクでは、RAW Valueに最大・最小値や平均値といった複数の情報が含まれていることがあります。
 先ほどの例では、S.M.A.R.T.情報のID#194 Temperatureがこれにあたります。ID#194 Temperatureは温度ですが、RAW Valueは158,915,035,170と温度としてもありえない数値を示しています。
 こういう場合は、sdbctlコマンドに「--smart_attr 194:divword」オプションを指定すると、3つの値に分解して表示してくれます。
 わかりにくいかもしれませんが、ID#3 Spin Up Time も、3つに分解すると正しい値を表示します。
 --smart_attrオプションを指定するには、--devオプションも合わせて必要なので、次のように指定します。
 | 
ex.2-1: 
C:\sdb\bin>sdbctl  show  --dev  disk0  --smart  attr  3:divword  --smart_attr  194:divword↓ 
(省略) 
DBOpen error!
Device disk0
Model   : HDT722520DLAT80
Firmware: V44OA96A
Serial  : VD051BTDDM86GL
Capacity: 200.0G
    ID# S.M.A.R.T. Attribute          Val Wst Ths Flags               RAW Value
      1 Raw Read Error Rate           100 100  16 --1-OP                      0
      2 Throughput Performance        100 100  50 ---1-P                      0
      3 Spin Up Time                  204 204  24 ---1OP      165    178      3
      4 Start/Stop Count              100 100   0 -1--O-                     19
      5 Reallocated Sectors Count     100 100   5 11--OP                      0
      7 Seek Error Rate               100 100  67 --1-OP                      0
      8 Seek Time Performance         100 100  20 ---1-P                      0
      9 Power-On Hours                100 100   0 -1--O-                  1,167
     10 Spin Retry Count              100 100  60 -1--OP                      0
     12 Device Power Cycle Count      100 100   0 11--O-                     19
    192 Power off Retract Count       100 100  50 11--O-                     65
    193 Load/Unload Cycle Count       100 100  50 -1--O-                     65
    194 Temperature                   161 161   0 ----O-       34     19     37
    196 Reallocation Event Count      100 100   0 11--O-                      0
    197 Current Pending Sector Count  100 100   0 1---O-                      0
    198 Uncorrectable Sector Count    100 100   0 --1---                      0
    199 UltraDMA CRC Error Rate       200 200   0 --1-O-                     13
 |   
 | 
 sdb.defファイルの編集
- 
 使用するハードディスクに合わせてsdb.defファイルを編集してやきます。
 RAW Valueの表示形式を指定する場合も、sdb.defファイルで指定しておくことができます。こうしておれば、毎回--smart_attrオプションを指定する必要はありません。
 メモ帳などのテキストエディタでインストールしたsdb.defファイルを開いてください。
 先ほどの操作の続きで、コマンドプロンプトからメモ帳を開いてsdb.defを編集する場合は次のように入力してください。
 | 
実行例
C:\sdb\bin>notepad  sdb.def↓ 
 |   
 | 
 sdb.defファイルの内容は次のようになっています。
 | 
sdb.defファイルの内容
↓ 
string  sdb_db_host = "sdb-server"; //[1] データベース(PostgreSQL)のアドレス↓ 
string  sdb_db_port = "5432";       //[2] データベースのポート↓ 
string  sdb_db_user = "sdb_user";   //[3] データベースのユーザー名↓ 
string  sdb_db_pass = "sdb_pass";   //[4] データベースのパスワード↓ 
string  sdb_db_name = "sdb";        //[5] データベース名↓ 
↓ 
string  sdb_http_post_host = "www.runser.jp";       //[6] HTTP SDBサーバ アドレス↓ 
string  sdb_http_post_port = "80";                  //[7] HTTP ポート↓ 
string  sdb_http_post_path = "/sdb/sdbpost.php";    //[8] HTTP パス↓ 
↓ 
string  sdb_sub_dir = "c:\\sdb\\log";   //[9] エラー発生時データ保存用フォルダ↓ 
↓ 
int     sdb_mail_warnlevel   = 3;   //[10] 警告レベル 0=off, 1=failure, 2=high, 3=mid, 4=low↓ 
string  sdb_mail_from        = "your@mail-addr";    //[11] 送信元メールアドレス↓ 
string  sdb_mail_to          = "your@mail-addr";    //[12] 送信先メールアドレス↓ 
string  sdb_mail_smtp_server = "your-mail-server";  //[13] SMTPサーバのアドレス↓ 
int     sdb_warn_high_estimate = 3; // [14] high↓ 
int     sdb_warn_mid_estimate = 14; // [15] mid↓ 
int     sdb_warn_low_estimate = 30; // [16] low↓ 
↓ 
int     sdb_auto_raw_word_id = 9;       //[17]↓ 
int     sdb_random_wait_sec = 30;       //[18]↓ 
int     sdb_dialog_auto_close_sec = 15; //[19]↓ 
↓ 
struct SdbDevOpt    // [20] 編集・変更しないでください↓ 
{↓ 
    string      model;↓ 
    string      serial;↓ 
    string      option;↓ 
};↓ 
↓ 
SdbDevOpt   sdbDevOptTbl[] =    //[21]↓ 
{↓ 
 { "HDT722520DLAT80", "VD051BTDDM86GL", "--smart_attr 3:word0 --smart_attr 194:word0" }, //[22]↓ 
 { "ST3200822A" "3LJ160QK", "" }, //[23]↓ 
};↓ 
 |   
 | 
 公開SDBサーバを利用するのに必要な設定は[3]〜[8]です。
 収録されているsdb.defにはあらかじめ公開SDBサーバ用の設定が記述されていますが、念のために内容を確認してください。
 [9]はSDBサーバが停止していたりエラーが発生した場合にデータを保存するフォルダです。例ではc:\sdb\logを指定しています。sdb.defファイル中のダブルクォート(")で括った文字列では、半角\記号は2つ続けて\\と指定するので注意してください。
 [21]に「SdbDevOpt sdbDevOptTbl[] =」という内容がありますが、[22]のように「{"モデル名", "シリアル" , "オプション" }」という形式で追加します。複数のハードディスクがある場合、[24]のように続けて何台でも指定できます。
 モデル名やシリアルは正確に入力してください。1文字でも間違うと、正しく動作しないので、コマンドプロンプトの表示内容からコピーして貼り付け(ペースト)することをお勧めします。
 RAW Valueの表示形式を指定する--smart_attrは[23]のように指定できます。sdbctl showコマンドでは「--smart_attr 194:divword」と指定していましたが、sdb.defファイル中では「--smart_attr 194:word0」と指定しています。これは3つに分割したいうち、最初の値を使うという意味です。2番目ならword1、3番目はword2となります。
 編集が終わったらsdb.defを保存してください。
 再びコマンドプロンプトでsdbctl showコマンドを実行して、--smart_attrオプションを指定しなくても、RAW Valueが正しく表示されれば成功です。
 SDBサーバにデバイスを登録
- 
 sdbctl addコマンドを実行してデバイスをSDBサーバに登録します。
 showコマンドと同じように、--devオプションを省略するとdisk0から順番に処理しますが、なるべく--devオプションでドライブを指定してください。
 公開SDBサーバやインターネット経由のHTTPモードで登録するには--httpオプションを指定する必要があります。
 確認のダイアログが表示されたら、[はい]ボタンをクリックしてください。
 | 
実行例
C:\sdb\bin>sdbctl  add  --http  --dev  disk0↓ 
(省略) 
Model HDT722520DLAT80 
Serial VD051BTDDM86GL 
Passcode YV8YM8Y 
// Add code sdb.def file 
SdbDevOpt       sdbDevOptTbl[] = 
{ 
        { "HDT722520DLAT80", "VD051BTDDM86GL", "--user_pass YV8YM8Y" }, 
}; 
(省略) 
 |   
 | 
 HTTPモードでは登録に成功したら、このようなメッセージが表示されます。
 ここで重要なのがPasscodeとして表示されている確証コードです。公開SDBサーバにS.M.A.R.T.情報を記録するには、ここで発行された確証コードが必要です。
 確証コードはsdb.defファイルに記述しておくことができます。画面には設定例が表示されていますが、--smart_attrオプションと同様に--user_passオプションをsdb.defファイルに登録してください。
 | 
sdb.defファイル
↓ 
SdbDevOpt   sdbDevOptTbl[] =        //[21]↓ 
{↓ 
 { "HDT722520DLAT80", "VD051BTDDM86GL", "--user_pass YV8YM8Y --smart_attr 3:word0 --smart_attr 194:word0" },    //[22]↓ 
};↓ 
 |   
 | 
 デバイスを登録したら、sdbctl updateコマンドを実行して、動作確認を行います。
 | 
ex.2-1: 
C:\sdb\bin>sdbctl  update  --http  --dev  disk0↓ 
(省略) 
Random wait 14 sec 
Device disk0 
Model   : HDT722520DLAT80 
Firmware: V44OA96A 
Serial  : VD051BTDDM86GL 
Capacity: 200.0G 
Found HTTP Result 200 
 |   
 | 
 updateコマンドはランダムに待ち時間が入ります。しばらく動作が停止したような状態になりますが、そのまま待ってください。待ち時間は初期設定のままなら最大30秒です。
 公開SDBサーバでは1日に記録できるデータ量を制限しています。動作確認のsdbctl updateの実行は最小限に止めてください。
 タスク スケジュールに登録
- 
 Windowsのタスク スケジュール機能を利用して、S.M.A.R.T.情報を自動的にSDBサーバに登録するように設定します。
 Windowsのコントロールパネルにあるタスクを開いてください。Windowsの環境や設定によって操作方法は若干異なりますが、[スタート]メニューから[コントロール パネル]を選択して、コントロール パネルを開きます。Windows 2000やクラシック表示では、「タスク」というアイテムがあるのでこれを実行して開きます。Windows XPでコントロール パネルがカテゴリ表示の場合、「パフォーマンスとメンテナンス」の中に「タスク」があるので、これをクリックして実行してください。
| コントロール・パネル(カテゴリ表示) |    |  
  | 
| コントロール・パネル(カテゴリ表示) |    |  
  | 
| タスクの追加 |    |  
  | 
 「タスク」が開いたら、「スケジュールされたタスクの追加」というアイテムをダブルクリックして実行します。
 「タスク ウィザード」が開きますので、[次へ(N)>]ボタンをクリックします。
 「実行するプログラムを1つ選択してください」という画面では、[参照(R)...]ボタンをクリックして、ファイルダイアログが開いたらSDB Toolsのsdbtask.exeを選択します。
| タスク ウィザード |    |  
  | 
| タスク ウィザード |    |  
  | 
 タスクの名前は適当に入力してかまいませんが、初期値としてプログラムの名前sdbtaskが入力されているので、通常はこれをそのまま使います。
 「このタスクの実行:」という選択箇所は、とりあえず「日単位」を選択しますが、実際には後で調整・変更します。
 選択したら[次へ(N)>]ボタンをクリックします。
| タスク ウィザード |    |  
  | 
 「開始時刻」と「開始日」は初期値として入力されている現在の時刻・日付をそのまま使ってください。
 ウィザードでは詳細が設定できないので後で調整・変更しますが、とりあえず「間隔(E)」を選択してください。
 選択したら[次へ(N)>]ボタンをクリックします。
| タスク ウィザード |    |  
  | 
 ユーザ名とパスワードを入力します(※)。
 現在ログオンしているユーザの名前と、パスワードを入力します。
 入力したら[次へ(N)>]ボタンをクリックします。
| 
※
 | 
 ここで入力するユーザ名とパスワードは、SDBサーバで使用するsdb_userやsdb_passではありません。Windowsのユーザ名とパスワードです。
 | 
| タスク ウィザード |    |  
  | 
 「完了をクリックしたときに詳細プロパティを開く(A)」にチェックをして選択して、[完了]ボタンをクリックします。
 Windowsのバージョンによっては、このチェックボックスが存在しないので、その場合は[完了]ボタンをクリックした後で作成したタスク(sdbtask)を右クリックしてプロパティを選択します。後から設定を変更する場合もこのように操作してください。
| タスク |    |  
  | 
| タスクのプロパティ:[タスク]タブ |    |  
  | 
 プロパティが開いたら、[タスク]タブの「実行するファイル名(R):」の入力ボックスにパラメータを指定します。
 初期値として「c:\sdb\bin\sdbtask.exe」といった具合に入力されているので、この後ろに半角スペースを置いてからコマンド・パラメータを追加します。物理ドライブ0番のS.M.A.R.T.情報を更新・記録する場合は、「c:\sdb\bin\sdbtask.exe update --http --dev disk0」と入力します。複数のドライブを処理したい場合は、「c:\sdb\bin\sdbtask.exe update --http --dev disk0 --dev disk1」といったように、必要な数だけ--devオプションを追加してください。
 公開SDBサーバを利用する場合には--httpオプションは必ず指定してください。
 次に[スケジュール]タブをクリックして画面を切り替えます。
| タスクのプロパティ:[スケジュール]タブ |    |  
  | 
 [スケジュール]タブでは、[詳細設定(V)...]ボタンをクリックして、「タスクを繰り返し実行(R)」を選択してチェックします。「間隔(V)」は60分、または1時間にして、「継続期間(D)」は24時間にします。詳細設定を済ませたら[OK]ボタンをクリックして「スケジュールの詳細設定」を閉じてください。
 「開始時刻」は、タスク作成時の時刻が設定されているので、00:00とか切のいい時刻に変更したくなるかもしれませんが、そのままにしてください。
 というのは、公開SDBサーバは多数のユーザが利用しますが、みなが00分とか設定すると、特定の時刻に処理が集中して負荷が高くなります。1時間間隔の実行ですので時間は何を設定してもいいのですが、「分」のほうは0〜59の間で無作為に選んでください。無作為といっても人間が選択すると偏る可能性があるので、タスク作成時に初期値として入力されている現在時刻をそのまま使ってください。
 設定が終わったら[OK]ボタンをクリックしてプロパティを閉じてください。
 プロパティを閉じるときにユーザ名とパスワードの入力を求めてることがあります。タスク ウィザードで入力したのと同じように入力してください。
 
 以上で、SDBクライアントの設定は終了です。
 SDBサーバのセットアップにはWebサーバ(Apache)やデータベース(PostgreSQL)が必要なので、これらの経験がないと難しいかもしれませんが、興味のある方は挑戦してみてください。
 ただし、数個のハードディスクを管理するだけならSDBサーバを自分で用意するには労力に合わないかもしれません、SDB Toolsは何台もあるハードディスクを一括して管理できるのが特徴です。自分のパソコンのハードディスクを監視するだけなら、他のS.M.A.R.T.関連ツールを使ったほうが簡単かと思います。