LinuxでHDD温度を取得する方法
サーバールームの条件によっては、サーバー内のハードドライブの温度について把握することが重要になる場合があります。システム管理者は、Bashとcronを使用して、温度の急激な変化について通知するシンプルなスクリプトを書くことができます。inxiやhddtempなどのさまざまなコマンドラインツールを使用して、HDDの温度を確認し、Bashスクリプト内で使用することができます。
このチュートリアルでは、Linuxシステム上でハードドライブの温度を取得する方法を紹介します。以下のインストール手順とコマンドの例を参考にして、始めてみましょう。
このチュートリアルでは、あなたは学びます:
- Linuxに
inxiとhddtempをインストールする方法 inxiを使ってHDD温度を取得する方法hddtempを使用してHDD温度を取得する方法- HDD温度監視Bashスクリプトの書き方
LinuxでHDD温度ツールをインストールする方法
私たちが使用するツールは、ほとんどのLinuxディストリビューションにデフォルトで含まれていることはありません。以下の適切なコマンドを使用して、システムのパッケージマネージャーでinxiとhddtempをインストールできます。
Ubuntu、Debian、およびLinux Mintにinxiとhddtempをインストールするには:
sudo apt install inxi hddtemp
Fedora、CentOS、AlmaLinux、およびRed Hatにinxiとhddtempをインストールするには:
sudo dnf install inxi hddtemp
Arch LinuxおよびManjaroにinxiとhddtempをインストールするには:
sudo pacman -S inxi hddtemp
HDD温度取得のコマンドライン例
まず、fdiskやlsscsiのようなコマンドを使用して、ブロックデバイスのパスを特定できます。
sudo fdisk -l
OR
lsscsi -g
ハードドライブは、例えば/dev/sdXの形式のパスを持ちます。
inxiツールを使って、次のコマンドで全てのハードドライブの温度を確認できるようになりました。sudo inxi -xD Drives: HDD Total Size: 75.5GB (70.3% used) ID-1: /dev/sda model: HTS721060G9SA00 size: 60.0GB temp: 35C ID-2: USB /dev/sdb model: TransMemory size: 15.5GB temp: 0C/dev/sdaのハードドライブ温度は35Cです。上記のコマンドはルート管理権限で実行する必要があることに注意してください。特定のブロックデバイスの温度を確認するには、そのデバイスをコマンドに指定するだけです。たとえば、このコマンドは
/dev/sdbの温度を確認します。sudo inxi -xD /dev/sdbhddtempコマンドを使うことで同じ情報を得ることができます。以下はその使用方法です。sudo hddtemp /dev/sda /dev/sda: HTS721060G9SA00: 36°C
HDD温度取得のBashスクリプト
ハードディスクの温度を定期的にチェックする監視スクリプトを設置することが目的であれば、以下のスクリプトを出発点として使用できます:
#!/bin/bash
temperature=$(hddtemp /dev/sda | cut -d : -f3 | sed 's/[^0-9]*//g')
REPORT when hard drive's temperature is above 50C
if [ $temperature -ge 50 ]; then
echo "ALERT: hard drive's temperature is above: $temperature"
fi締めくくりの考え
このチュートリアルでは、Linuxシステム上でハードディスクの温度を取得する方法を見ました。これは、主要なLinuxディストリビューションのパッケージマネージャーを通じて簡単にインストールできるinxiとhddtempコマンドによって容易に行えます。また、これらのコマンドをBashスクリプトに適応させて、HDD温度を定期的に監視し、重大な温度の急上昇を報告する方法も学びました。
