「Hddtemp」の版間の差分
編集の要約なし |
細 カテゴリ変更 |
||
| 1行目: | 1行目: | ||
[[Category: |
[[Category:システムモニタ]] |
||
[[en:Hddtemp]] |
[[en:Hddtemp]] |
||
[[ru:Hddtemp]] |
[[ru:Hddtemp]] |
||
2019年2月22日 (金) 00:03時点における版
関連記事
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