Hddtemp

提供: ArchWiki
移動先: 案内検索

関連記事

hddtemp は S.M.A.R.T. によって (この機能をサポートしているドライブで) ハードドライブの温度を得ることができる小さなユーティリティです (デーモン付き)。

インストール

公式リポジトリから hddtempインストールして下さい。

使用方法

Hddtemp は root 権限を必要とします。hddtemp コマンドには少なくとも1つのドライブの場所を指定する必要があり、複数のディレクトリを指定するときはスペースで区切ります:

# hddtemp /dev/sdX1 /dev/sdX2 ... /dev/sdXn

デーモン

デーモンを実行することで TCP/IP を介して温度にアクセスすることができ、スクリプトなどで利用できます。

このデーモンは hddtemp.service制御します。

ノート: hddtemp への引数は /usr/lib/systemd/system/hddtemp.service で直接指定します。デフォルトの設定では /dev/sda しか監視しないので、複数のディスクがある場合に特に重要です。ExecStart を変更して hddtemp.service上書きして下さい:
  • /etc/systemd/system にディレクトリを作成:
# mkdir /etc/systemd/system/hddtemp.service.d
  • その中に customexec.conf を作成して監視したいドライブを追加、例:
/etc/systemd/system/hddtemp.service.d/customexec.conf
[Service]
ExecStart=
ExecStart=/usr/bin/hddtemp -dF /dev/sda /dev/sdb /dev/sdc

auto-generate スクリプトを使って smartmontools により hddtemp でサポートされているハードドライブを全て検出して標準出力で customexec.conf パターンファイルを生成することもできます。

  • systemd のユニットファイルを再読み込み:
# systemctl --system daemon-reload
  • hddtemp サービスを再起動:
# systemctl restart hddtemp

温度を取得するには、ポート 7634 で待機しているデーモンに接続します。inetutils を使用:

$ telnet localhost 7634

gnu-netcat を使用:

$ nc localhost 7634

どちらも同じような出力がされます:

|/dev/sda|ST3500413AS|32|C||/dev/sdb|ST2000DM001-1CH164|36|C|

見た目が良い統計を得るには:

$ nc localhost 7634 |sed 's/|//m' | sed 's/||/ \n/g' | awk -F'|' '{print $1 " " $3 " " $4}'
/dev/sda 32 C 
/dev/sdb 36 C

詳しくは manpage を参照して下さい:

$ man hddtemp

モニター

Hddtemp はシステムモニターに統合させることができます。

ソリッドステートドライブ

通常 Hddtemp はドライブのスマートデータからフィールド 194 を読み取ります。SSD では基本的に温度情報はフィールド 190 に保存されています。この情報を取得するには、次を実行:

$ smartctl -a /dev/sdX

または:

$ hddtemp --debug /dev/sdX

X はドライブ文字に置き換えてください (例: a,b,c...)。ドライブ文字は lsblk で確認できます。

また、/usr/share/hddtemp/hddtemp.db に新しいエントリを追加することも可能です。例:

$ echo '"Samsung SSD 840 EVO 250G B" 190 C "Samsung SSD 840 EVO 250GB"' >> /usr/share/hddtemp/hddtemp.db