Hddtemp
Related articles
hddtemp is a small utility (with daemon) that gives the hard-drive temperature via S.M.A.R.T. (for drives supporting this feature).
Installation
Install hddtemp from the official repositories.
Usage
Hddtemp requires root privileges. The command hddtemp
must be followed by at least one drive's location, with several directories separated by spaces:
# hddtemp /dev/sdX1 /dev/sdX2 ... /dev/sdXn
Daemon
Running the daemon allows to access the temperature via TCP/IP, to use for example with scripts.
The daemon is controlled by hddtemp.service
.
To get the temperature, connect to the daemon which listens on port 7634. With inetutils:
$ telnet localhost 7634
With gnu-netcat:
$ nc localhost 7634
Both outputs are similar to:
|/dev/sda|ST3500413AS|32|C||/dev/sdb|ST2000DM001-1CH164|36|C|
For a better looking statistic:
$ nc localhost 7634 |sed 's/|//m' | sed 's/||/ \n/g' | awk -F'|' '{print $1 " " $3 " " $4}'
/dev/sda 32 C /dev/sdb 36 C
Refer to the manpage for more information:
$ man hddtemp
Monitors
Hddtemp can be integrated with system monitors.
Solid State Drives
Hddtemp usually reads field 194
from the smart data of the drive. In SSDs temperature information is usually stored in field 190
. To obtain this information, one can run:
$ smartctl -a /dev/sdX
or
$ hddtemp --debug /dev/sdX
where X is a character (e.g. a,b,c...) representing the drive. Use lsblk
to check this.
Alternatively, add a new entry in /usr/share/hddtemp/hddtemp.db
. For example:
$ echo '"Samsung SSD 840 EVO 250G B" 190 C "Samsung SSD 840 EVO 250GB"' >> /usr/share/hddtemp/hddtemp.db