Linux下如何获取硬盘温度
根据您的服务器机房条件,了解服务器内部的硬盘驱动器温度可能很重要。系统管理员可以使用 Bash 和 cron 编写一个简单的脚本,可以针对温度突然变化发出警报。各种命令行工具(例如 inxi
或 hddtemp
)可以检查 HDD 温度并在 Bash 脚本内使用。
在本教程中,您将了解如何获取 Linux 系统上硬盘的温度。下面的安装说明和命令示例将帮助您入门。
在本教程中您将学习:
如何在 Linux 中安装
inxi
和hddtemp
如何使用
inxi
获取硬盘温度如何使用
hddtemp
获取硬盘温度如何编写硬盘温度监控 Bash 脚本
如何在Linux中安装硬盘温度工具
大多数 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
获取硬盘温度命令行示例
首先,您可以使用 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。请注意,上述命令需要以 root 管理权限运行。或者要检查特定块设备的温度,只需在命令中指定该设备即可。例如,此命令检查
/dev/sdb
的温度。$ sudo inxi -xD /dev/sdb
通过
hddtemp
命令可以获得相同的信息。以下是如何使用它。$ sudo hddtemp /dev/sda /dev/sda: HTS721060G9SA00: 36°C
获取硬盘温度 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 系统上硬盘的温度。这是通过 inxi
和 hddtemp
命令实现的,可以通过主要 Linux 发行版上的包管理器轻松安装这些命令。您还学习了如何将这些命令改编成 Bash 脚本,以定期监控 HDD 温度并报告任何主要温度峰值。