「Hddtemp」の版間の差分
細 (カテゴリ変更) |
(他言語へのリンクを追加) |
||
(同じ利用者による、間の2版が非表示) | |||
1行目: | 1行目: | ||
[[Category:システムモニタ]] |
[[Category:システムモニタ]] |
||
[[en:Hddtemp]] |
[[en:Hddtemp]] |
||
+ | [[fr:Hddtemp]] |
||
[[ru:Hddtemp]] |
[[ru:Hddtemp]] |
||
+ | [[zh-hans:Hddtemp]] |
||
{{Related articles start}} |
{{Related articles start}} |
||
{{Related|lm sensors}} |
{{Related|lm sensors}} |
||
{{Related articles end}} |
{{Related articles end}} |
||
− | [https://savannah.nongnu.org/projects/hddtemp/ hddtemp] は S.M.A.R.T. によって (この機能をサポートしているドライブで) ハードドライブの温度を得ることができる小さなユーティリティです (デーモン付き) |
+ | [https://savannah.nongnu.org/projects/hddtemp/ hddtemp] は [[S.M.A.R.T.]] によって (この機能をサポートしているドライブで) ハードドライブの温度を得ることができる小さなユーティリティです (デーモン付き) |
+ | |||
+ | {{Tip|ドライブの温度にアクセスするためのより汎用性の高いオプションは [[lm_sensors]] で、他のデータも処理します。}} |
||
== インストール == |
== インストール == |
||
− | + | {{Pkg|hddtemp}} パッケージを[[インストール]]して下さい。 |
|
== 使用方法 == |
== 使用方法 == |
||
− | Hddtemp は |
+ | Hddtemp には [[ユーザーとグループ#概要|Root user]] 権限が必要です。{{ic|hddtemp}} コマンドの後には、少なくとも 1 つのドライブの場所を指定する必要があります。複数のドライブをスペースで区切ってリストできます。 |
− | # hddtemp /dev/ |
+ | # hddtemp /dev/disk/by-id/wwn-0x60015ee0000b237f /dev/sd''X2'' ... /dev/sd''Xn'' |
+ | {{Note|{{ic|/dev/sdX}} など、{{ic|/dev/}} のブロックデバイスの名前が一貫していません。詳細については、[[永続的なブロックデバイスの命名]] を参照してください。 |
||
− | == デーモン == |
||
+ | }} |
||
+ | 使用方法の詳細については、{{man|8|hddtemp}} を参照してください。 |
||
− | デーモンを実行することで TCP/IP を介して温度にアクセスすることができ、スクリプトなどで利用できます。 |
||
+ | == デーモン == |
||
− | このデーモンは {{ic|hddtemp.service}} で[[systemd#ユニットを使う|制御]]します。 |
||
+ | デーモンを実行すると、通常のユーザーとして TCP/IP 経由で温度情報にアクセスできるようになります。これは、スクリプトやシステムモニタリングに役立ちます。 |
||
− | {{Note|1={{ic|hddtemp}} への引数は {{ic|/usr/lib/systemd/system/hddtemp.service}} で直接指定します。デフォルトの設定では {{ic|/dev/sda}} しか監視しないので、複数のディスクがある場合に特に重要です。{{ic|ExecStart}} を変更して {{ic|hddtemp.service}} を[[Systemd#ユニットファイルの編集|上書き]]して下さい: |
||
+ | デーモンは、{{ic|hddtemp.service}} で [[systemd#ユニットを使う|制御]] します。 |
||
− | * {{ic|/etc/systemd/system}} にディレクトリを作成: |
||
− | # mkdir /etc/systemd/system/hddtemp.service.d |
||
− | * その中に {{ic|customexec.conf}} を作成して監視したいドライブを追加、例: |
||
− | {{hc|/etc/systemd/system/hddtemp.service.d/customexec.conf|2= |
||
− | [Service] |
||
− | ExecStart= |
||
− | ExecStart=/usr/bin/hddtemp -dF /dev/sda /dev/sdb /dev/sdc |
||
− | }} |
||
− | [https://github.com/AndyCrowd/auto-generate-configuration-files/blob/master/gen-customexec.conf-hddtemp.sh auto-generate] スクリプトを使って {{Pkg|smartmontools}} により {{Pkg|hddtemp}} でサポートされているハードドライブを全て検出して標準出力で {{ic|customexec.conf}} パターンファイルを生成することもできます。 |
||
− | * systemd のユニットファイルを再読み込み: |
||
− | # systemctl --system daemon-reload |
||
− | * hddtemp サービスを再起動: |
||
− | {{bc|# systemctl restart hddtemp}} |
||
− | }} |
||
− | 温度を取得するには、ポート 7634 |
+ | 温度を取得するには、ポート 7634 をリッスンするデーモンに接続します。 |
+ | {{pkg|inetutils}} を使用する場合: |
||
$ telnet localhost 7634 |
$ telnet localhost 7634 |
||
− | {{pkg|gnu-netcat}} |
+ | {{pkg|gnu-netcat}} の場合: |
− | |||
$ nc localhost 7634 |
$ nc localhost 7634 |
||
− | どちらも |
+ | どちらの出力も次のようになります。 |
|/dev/sda|ST3500413AS|32|C||/dev/sdb|ST2000DM001-1CH164|36|C| |
|/dev/sda|ST3500413AS|32|C||/dev/sdb|ST2000DM001-1CH164|36|C| |
||
− | + | 統計をより見やすくするには: |
|
{{hc|<nowiki>$ nc localhost 7634 |sed 's/|//m' | sed 's/||/ \n/g' | awk -F'|' '{print $1 " " $3 " " $4}'</nowiki>|/dev/sda 32 C |
{{hc|<nowiki>$ nc localhost 7634 |sed 's/|//m' | sed 's/||/ \n/g' | awk -F'|' '{print $1 " " $3 " " $4}'</nowiki>|/dev/sda 32 C |
||
/dev/sdb 36 C}} |
/dev/sdb 36 C}} |
||
+ | === デフォルトのディスクを上書きする === |
||
− | 詳しくは manpage を参照して下さい: |
||
+ | |||
+ | デフォルトの Hddtemp デーモンは、{{ic|/dev/sda}} のみを監視します。複数のディスクがある場合は、それらを監視するためにデフォルトの設定を [[systemd#ユニットファイルの編集|上書き]] する必要があります。 |
||
+ | |||
+ | どのハードドライブが監視をサポートしているかを知る必要がある場合は、{{pkg|smartmontools}} で確認できます。{{ic|hddtemp.service}} を [[編集]] します: |
||
+ | |||
+ | [Service] |
||
+ | ExecStart= |
||
+ | ExecStart=/usr/bin/hddtemp --daemon --foreground /dev/disk/by-id/wwn-0x60015ee0000b237f /dev/sdb --listen=127.0.0.1 |
||
+ | |||
+ | デバイス名を監視したいデバイス名に変更します。 |
||
+ | |||
+ | 編集後、ファイルを保存してエディタを終了します。[[Systemd]] は変更を適用し、{{ic|hddtemp}} サービスを自動的にリロードします。 |
||
+ | [https://github.com/AndyCrowd/auto-generate-configuration-files/blob/master/gen-customexec.conf-hddtemp.sh auto-generate] スクリプトを使用することもできます。これにより、{{pkg|smartmontools}} を使用してサポートされているハードドライブを検出し、stdout に出力することもできます。 |
||
− | $ man hddtemp |
||
== モニター == |
== モニター == |
||
− | Hddtemp は[[アプリケーション一覧#システム監視|システムモニター]] |
+ | Hddtemp は [[アプリケーション一覧#システム監視|システムモニター]] と統合できます。[[Conky]] には、デーモンモードでの Hddtemp のサポートが組み込まれています。{{ic|hddtemp.service}} を [[有効化]] して、Conky 設定ファイルに {{ic|$hddtemp °C}} を追加するだけです。 |
== ソリッドステートドライブ == |
== ソリッドステートドライブ == |
||
− | 通常 Hddtemp はドライブのスマートデータからフィールド {{ic|194}} を読み取ります。SSD では基本的に温度情報はフィールド {{ic|190}} に保存されています。この情報を取得するには、次を実行: |
+ | 通常 Hddtemp はドライブのスマートデータからフィールド {{ic|194}} を読み取ります。SSD では基本的に温度情報はフィールド {{ic|190}} に保存されています。この情報を取得するには、次のコマンドを実行します。: |
− | + | # smartctl --all /dev/sd''x'' |
|
または: |
または: |
||
− | + | # hddtemp --debug /dev/sd''x'' |
|
− | X はドライブ文字に置き換えてください (例: a,b,c...)。ドライブ文字は |
+ | X はドライブ文字に置き換えてください (例: a,b,c...)。ドライブ文字は [[lsblk]] で確認できます。 |
また、{{ic|/usr/share/hddtemp/hddtemp.db}} に新しいエントリを追加することも可能です。例: |
また、{{ic|/usr/share/hddtemp/hddtemp.db}} に新しいエントリを追加することも可能です。例: |
||
− | + | # echo '"Samsung SSD 840 EVO 250GB" 190 C "Samsung SSD 840 EVO 250GB"' >> /etc/hddtemp.db |
2024年4月11日 (木) 00:20時点における最新版
関連記事
hddtemp は S.M.A.R.T. によって (この機能をサポートしているドライブで) ハードドライブの温度を得ることができる小さなユーティリティです (デーモン付き)
インストール
使用方法
Hddtemp には Root user 権限が必要です。hddtemp
コマンドの後には、少なくとも 1 つのドライブの場所を指定する必要があります。複数のドライブをスペースで区切ってリストできます。
# hddtemp /dev/disk/by-id/wwn-0x60015ee0000b237f /dev/sdX2 ... /dev/sdXn
使用方法の詳細については、hddtemp(8) を参照してください。
デーモン
デーモンを実行すると、通常のユーザーとして TCP/IP 経由で温度情報にアクセスできるようになります。これは、スクリプトやシステムモニタリングに役立ちます。
デーモンは、hddtemp.service
で 制御 します。
温度を取得するには、ポート 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
デフォルトのディスクを上書きする
デフォルトの Hddtemp デーモンは、/dev/sda
のみを監視します。複数のディスクがある場合は、それらを監視するためにデフォルトの設定を 上書き する必要があります。
どのハードドライブが監視をサポートしているかを知る必要がある場合は、smartmontools で確認できます。hddtemp.service
を 編集 します:
[Service] ExecStart= ExecStart=/usr/bin/hddtemp --daemon --foreground /dev/disk/by-id/wwn-0x60015ee0000b237f /dev/sdb --listen=127.0.0.1
デバイス名を監視したいデバイス名に変更します。
編集後、ファイルを保存してエディタを終了します。Systemd は変更を適用し、hddtemp
サービスを自動的にリロードします。
auto-generate スクリプトを使用することもできます。これにより、smartmontools を使用してサポートされているハードドライブを検出し、stdout に出力することもできます。
モニター
Hddtemp は システムモニター と統合できます。Conky には、デーモンモードでの Hddtemp のサポートが組み込まれています。hddtemp.service
を 有効化 して、Conky 設定ファイルに $hddtemp °C
を追加するだけです。
ソリッドステートドライブ
通常 Hddtemp はドライブのスマートデータからフィールド 194
を読み取ります。SSD では基本的に温度情報はフィールド 190
に保存されています。この情報を取得するには、次のコマンドを実行します。:
# smartctl --all /dev/sdx
または:
# hddtemp --debug /dev/sdx
X はドライブ文字に置き換えてください (例: a,b,c...)。ドライブ文字は lsblk で確認できます。
また、/usr/share/hddtemp/hddtemp.db
に新しいエントリを追加することも可能です。例:
# echo '"Samsung SSD 840 EVO 250GB" 190 C "Samsung SSD 840 EVO 250GB"' >> /etc/hddtemp.db