Hddtemp

出自 Arch Linux 中文维基

Hddtemp 是一個小工具(有守護進程),通過 S.M.A.R.T.(對於支持該功能的驅動器)提供硬盤温度。

提示:訪問驅動器温度的一個更通用的選項是 Linux 監測傳感器,因為它也處理其他數據。

安裝[編輯 | 編輯原始碼]

安裝 hddtemp

使用[編輯 | 編輯原始碼]

Hddtemp 需要根用户權限。命令 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

使用 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