hddtemp インストール手順

概要

hddtempはsmartの情報を元にHDDの温度情報を取得するツールである。

インストール手順

配布元よりtar.bz2形式のソースを取得し、コンパイルインストールを行なう。
HDDデータベースファイル(hddtemp.db)は初期状態では保管場所として /usr/share/misc が指定されているが、下記例では保管場所を /etc 配下に変更している。

wget http://www.guzu.net/linux/hddtemp-0.3-beta12.tar.bz2
bunzip2 hddtemp-0.3-beta12.tar.bz2
tar xfv hddtemp-0.3-beta12.tar
cd hddtemp-0.3-beta12
./configure --with-db-path=/etc/hddtemp.db
make
make install
cd /etc
wget http://www.guzu.net/linux/hddtemp.db

実行手順

実行ファイルは /usr/local/sbin に配置される。
測定は対象のデバイスファイル名を引数に指定する。

# hddtemp /dev/hda
/dev/hda: ST340016A: 40℃

非対応ドライブ対策

SMART対応ではあるがhdtemp.dbに情報が登録されていないドライブの検査を行なうと、以下のような警告メッセージが表示される。

# hddtemp /dev/hdc
WARNING: Drive /dev/hdc doesn't appear in the database of supported drives
WARNING: But using a common value, it reports something.
WARNING: Note that the temperature shown could be wrong.
WARNING: See --help, --debug and --drivebase options.
WARNING: And don't forget you can add your drive to hddtemp.db
/dev/hdc: WDC WD2000BB-00DWA0: 34・ or ・

上記の表示結果ではモデルナンバー表示と温度測定(赤色部分)はできていることから、SMART対応ドライブであるがhddtemp.dbに情報が無いだけであると分かる。
この様な場合はhddtemp.dbに情報を追加することで警告表示を抑制できる。

hddtemp.dbへのHDD情報登録はhddtempをデバッグモードにて動作させ、値を取得するフィールドを調査する必要がある。

# hddtemp -D /dev/hdc

出力結果は以下となる。
このHDDの場合は赤文字行(194)の値を使用するが、全てのHDDがこの行に温度情報を持つ訳ではない。
このため、実温度と比較して適正と思われる行を温度として使用する。

================= hddtemp 0.3-beta12 ==================
Model: WDC WD2000BB-00DWA0

field(1) = 0
field(3) = 204
field(4) = 77
field(5) = 3
field(7) = 0
field(9) = 97
field(10) = 0
field(11) = 0
field(12) = 76
field(194) = 47
field(196) = 3
field(197) = 0
field(198) = 0
field(199) = 0
field(200) = 0

hddtemp.dbへの登録情報は以下となる。

"WDC WD2000BB-00DWA0" 194 C "Western Digital Caviar 200GB Special Edition 2MB"

登録後の再実行結果は以下となる。

# hddtemp /dev/hdc
/dev/hdc: WDC WD2000BB-00DWA0: 36℃

SNMPとの連携

SNMPマネージャに計測情報を送りグラフ化する場合は以下の様なスクリプトを作成し、snmpd.confのexec行にて実行できるよう設定を行う。

#!/bin/sh
# ------------------------
# hdd temp data script
# ------------------------
# Version : 1.0
# update  : 2004.11.10

export LANG=C
export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin

# Setting
HDDTEMP="/usr/local/sbin/hddtemp"
DRIVE="/dev/"$1

# Check
if [ -z $1  ]; then
echo "ERR  : please input device name"
echo "usage: hddtemp.sh hda"
exit 0
fi

# Exec
$HDDTEMP $DRIVE |  awk 'BEGIN{FS=":"}{print $3}' | awk '{print $1}' | sed -e 's/+//' -e 's/[^0-9+\.].*//'

# EOF

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2025-03-16 (日) 23:19:12