Hddtemp - ArchWiki

Jump to content

Related articles

- lm sensors
- Conky

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 the hddtemp package.

## Usage

Hddtemp requires root privileges. The command `hddtemp` must be followed by at least one drive's location. You can list several drives separated by spaces:

    # hddtemp /dev/disk/by-id/wwn-0x60015ee0000b237f /dev/sdX2 ... /dev/sdXn

Note: Block device naming under `/dev/`, like `/dev/sdX`, is inconsistent. See Persistent block device naming for information on using persistent device paths.

Further usage information is available in the manpage hddtemp(8).

## Daemon

Running the daemon allows access to the temperature information via TCP/IP as a regular user. This is useful for scripts and system monitors.

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

### Override default disk

The default hddtemp daemon only monitors `/dev/sda`. If you have multiple disks, you need to override the default configuration to monitor them.

You will need to know which hard drives support monitoring. You can check with smartmontools. Edit `hddtemp.service`.

    [Service]
    ExecStart=
    ExecStart=/usr/bin/hddtemp --daemon --foreground /dev/disk/by-id/wwn-0x60015ee0000b237f /dev/sdb --listen=127.0.0.1

Change the device names to the ones you want to monitor.

After editing, save the file and exit from editor. Systemd will apply changes and reload `hddtemp` service automatically.

You can also use the auto-generate script will detect supported hard drives using smartmontools and print to the stdout.

## Monitors

Hddtemp can be integrated with system monitors. Conky has built in support for hddtemp in daemon mode. Just enable `hddtemp.service` and add `$hddtemp °C` to your conky configuration file.

## 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 --all /dev/sdx

or

    # hddtemp --debug /dev/sdx

where `/dev/sdx` is the drive (use lsblk to check this).

Alternatively, add a new entry in `/etc/hddtemp.db`. For example:

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

Category:

- System monitors