无需安装额外软件包即可检查硬盘温度的标准方法

无需安装额外软件包即可检查硬盘温度的标准方法

hddtemp我想在不安装或 的情况下检查硬盘的温度smartctl。有标准的 UNIX 方法来做到这一点吗?

例如,要检查CPU温度,不需要安装lm-sensors,只需读取/sys/class/thermal/thermal_zone*/temp或即可/sys/devices/platform/coretemp.0/hwmon/hwmon*/temp*_inputlm-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

相关内容