跳转至内容

Hddtemp

来自 ArchWiki

Hddtemp 是一个小型实用工具(带守护进程),通过 S.M.A.R.T.(适用于支持此功能的驱动器)提供硬盘温度。

提示 访问驱动器温度的更通用的选项是 lm_sensors,因为它还可以处理其他数据。

安装

安装 hddtemp 包。

用法

Hddtemp 需要 root 用户权限。命令 hddtemp 后面必须跟至少一个驱动器的位置。您可以列出多个用空格分隔的驱动器

# hddtemp /dev/disk/by-id/wwn-0x60015ee0000b237f /dev/sdX2 ... /dev/sdXn
注意 /dev/ 下的块设备命名,例如 /dev/sdX,是不一致的。有关更多信息,请参阅 持久化块设备命名

更多用法信息可在 hddtemp(8) 中找到。

守护进程

运行守护进程允许普通用户通过 TCP/IP 访问温度信息。这对于脚本和系统监视器很有用。

守护进程由 hddtemp.service 控制

要获取温度,请连接到监听端口 7634 的守护进程。

使用 inetutils

$ telnet localhost 7634

使用 openbsd-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 服务。

您还可以使用 自动生成 脚本,该脚本将使用 smartmontools 检测支持的硬盘驱动器,并将结果打印到标准输出。

显示器

Hddtemp 可以与 系统监视器集成。Conky 在守护进程模式下内置了对 Hddtemp 的支持。只需 启用 hddtemp.service 并将 $hddtemp °C 添加到您的 Conky 配置文件中。

固态硬盘

Hddtemp 通常读取驱动器智能数据的字段 194。在 SSD 中,温度信息通常存储在字段 190 中。要获取这些信息,可以运行

# smartctl --all /dev/sdx

或者

# hddtemp --debug /dev/sdx

其中 /dev/sdx 是驱动器(使用 lsblk 进行检查)。

或者,在 /etc/hddtemp.db 中添加新条目。例如

# echo '"Samsung SSD 840 EVO 250GB" 190 C "Samsung SSD 840 EVO 250GB"' >> /etc/hddtemp.db