![无需安装额外软件包即可检查硬盘温度的标准方法](https://linux22.com/image/12378/%E6%97%A0%E9%9C%80%E5%AE%89%E8%A3%85%E9%A2%9D%E5%A4%96%E8%BD%AF%E4%BB%B6%E5%8C%85%E5%8D%B3%E5%8F%AF%E6%A3%80%E6%9F%A5%E7%A1%AC%E7%9B%98%E6%B8%A9%E5%BA%A6%E7%9A%84%E6%A0%87%E5%87%86%E6%96%B9%E6%B3%95.png)
hddtemp
我想在不安装或 的情况下检查硬盘的温度smartctl
。有标准的 UNIX 方法来做到这一点吗?
例如,要检查CPU温度,不需要安装lm-sensors
,只需读取/sys/class/thermal/thermal_zone*/temp
或即可/sys/devices/platform/coretemp.0/hwmon/hwmon*/temp*_input
。lm-sensors
只是漂亮地打印它。所以应该有一个硬盘温度的文件。我尝试在文件夹中查找硬盘温度文件/sys/class/scsi_host
,但找不到任何内容。
答案1
在 Linux 5.6+ 上,使用drivetemp 模块使用 HWMON 基础设施读取磁盘传感器数据。
加载模块驱动温度:
sudo modprobe drivetemp
然后您可以在 /sys/class/hwmon/hwmon*/ 中找到传感器数据以及其他传感器
https://www.kernel.org/doc/html/latest/hwmon/drivetemp.html
列出所有驱动器的示例:
grep -l "drivetemp" /sys/class/hwmon/hwmon*/name | while read f;
do printf "%s(%-.2s°C)\n" "`<${f%/*}/device/model`" "`<${f%/*}/temp1_input`";
done
按型号列出驱动器的示例:
grep -l "Lexar 256GB SSD" /sys/class/scsi_disk/*/device/model | while read f;
do printf "%s(%-.2s°C)\n" "`<${f%}`" "`<${f%/*}/hwmon/hwmon*/temp1_input`";
done
仅按驱动器型号获取温度的示例:
cat "$(grep -l "Lexar 256GB SSD" /sys/class/scsi_disk/*/device/model | xargs dirname)"/hwmon/hwmon*/temp1_input
列出驱动器型号的示例:
cat /sys/class/scsi_disk/*/device/model