Hddtemp
Hddtemp 是一个小工具(有守护进程),通过 S.M.A.R.T.(对于支持该功能的驱动器)提供硬盘温度。
安装[编辑 | 编辑源代码]
使用[编辑 | 编辑源代码]
Hddtemp 需要根用户权限。命令 hddtemp
后面必须至少有一个驱动器的位置。你可以列出几个用空格分隔的驱动器。
# hddtemp /dev/disk/by-id/wwn-0x60015ee0000b237f /dev/sdX2 ... /dev/sdXn
更多使用信息见 hddtemp(8)。
守护进程[编辑 | 编辑源代码]
运行守护进程允许普通用户通过 TCP/IP 访问温度信息。这对脚本和系统监控很有帮助。
该守护进程由 hddtemp.service
控制。
要获取温度,请连接该守护进程,其监听端口为7634。
使用 inetutils包:
$ telnet localhost 7634
使用 gnu-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
服务。
你也可以使用 auto-generate 脚本,它会使用 {{pkg|smartmontools} 检测支持的硬盘,并打印到标准输出文件。
监控器[编辑 | 编辑源代码]
Hddtemp 可以与系统监视器集成。Conky 在守护进程模式中已内置对 Hddtemp 的支持。只需启用 hddtemp.service
并将$hddtemp ℃
添加到 Conky 配置文件。
固态硬盘[编辑 | 编辑源代码]
Hddtemp 通常从驱动器的智能数据中读取字段194
。在固态硬盘中,温度信息通常存储在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