1HDDTEMP(8) System Manager's Manual HDDTEMP(8)
2
3
4
6 hddtemp - Utility to monitor hard drive temperature
7
9 hddtemp [options] [[type:]disk]...
10
12 hddtemp will give you the temperature of your hard drive by reading
13 Self-Monitoring Analysis and Reporting Technology (S.M.A.R.T.) infor‐
14 mation on drives that support this feature. Only modern hard drives
15 have a temperature sensor. hddtemp supports reading S.M.A.R.T. infor‐
16 mation from SCSI drives too. hddtemp can work as simple command line
17 tool or as a daemon.
18
19 You can specify one or more device drive path, where each path can be
20 prefixed with a type like PATA, SATA or SCSI to force hddtemp too use
21 one of these type (because detection can fail). If no paths are speci‐
22 fied, autodetection of installed drives is attempted.
23
24
25
27 The program follows the usual GNU command line syntax, with long
28 options starting with two dashes (`-'). A summary of options is
29 included below.
30
31 -b, --drivebase
32 Display the database file that allows hddtemp to recognize a
33 supported drive.
34
35 -D, --debug
36 Display various S.M.A.R.T. fields and their values. Useful for
37 finding a value that seems to match the temperature and/or to
38 send a report. (done for every drive supplied)
39
40 -d, --daemon
41 Execute hddtemp in TCP/IP daemon mode (port 7634 by default).
42
43 -f, --file=file
44 Specify the database file to use.
45
46 -F, --foreground
47 Don't fork into the background even in daemon mode. This is
48 useful when running under a process supervisor.
49
50 -l, --listen=addr
51 Listen on a specific address. addr is a string containing a
52 host name or a numeric host address string. The numeric host
53 address string is a dotted-decimal IPv4 address or an IPv6 hex
54 address.
55
56 -n, --numeric
57 Print only the temperature (without the unit).
58
59 -p, --port=#
60 Port number to listen to (in TCP/IP daemon mode).
61
62 -s, --separator=char
63 Separator to use between fields (in TCP/IP daemon mode). The
64 default separator is `|'.
65
66 -S, --syslog=s
67 Switch to daemon mode and log temperatures to syslog every s
68 seconds.
69
70 -q, --quiet
71 Don't check if the drive is supported.
72
73 -u, --unit=C|F
74 Force output temperature either in Celsius or Fahrenheit.
75
76 -v, --version
77 Display hddtemp version number.
78
79 -w, --wake-up
80 Wake-up the drive if needed (ATA drives only).
81
82 -4 Listen on IPv4 sockets only.
83
84 -6 Listen on IPv6 sockets only.
85
86
87
89 If you know your drive has a temperature sensor but it is being
90 reported unsupported, tell me which model and which manufacturer it is,
91 and/or just add a new entry in /usr/share/misc/hddtemp.db. Each line
92 of hddtemp.db is either a comment, a blank line or a line containing:
93
94 - a regular expression that allow hddtemp to recognize a drive or a
95 set of drives from its model name or from a generic model name,
96
97 - a value (ATTRIBUTE_ID from S.M.A.R.T.),
98
99 - a C or an F to set the unit to Celsius or Fahrenheit,
100
101 - a description.
102
103 Feedback is welcome (see the REPORT section below).
104
105
107 Example of type forcing:
108
109 # hddtemp SATA:/dev/sda PATA:/dev/hda
110
111 To test hddtemp in daemon mode, start it like this:
112
113 # hddtemp -d /dev/hd[abcd]
114
115 and use telnet or netcat (which is known as nc on some systems) to get
116 a reply:
117
118 # netcat localhost 7634
119
120 The drive database is read only once at startup, so hddtemp must be
121 restarted if the database is updated for the changes to take effect.
122
123
125 As I receive a lot of reports, things must be clarified. When running
126 hddtemp with debug options, hddtemp will show sort of a dump of
127 S.M.A.R.T. data. Each field corresponds to an information field. The
128 standard field for drive temperature is 194. But this is not always
129 the case (mostly for older drives). Even if your drive has S.M.A.R.T.
130 capabilities, it doesn't necessarily mean that it can report its tem‐
131 perature. So, things must be determined through experimentation.
132
133 So, you can try to guess which field by is the good one by running
134 hddtemp at regular intervals:
135
136 - just after starting up your PC/server/station,
137
138 - after opening a window (a physical window :),
139
140 - after opening the case,
141
142 - whatever you can think of...
143
144 and looking for a field's value that would increase or decrease depend‐
145 ing on what effect you want to induce. Be careful, fields 4, 9, and 12
146 are often reported to match a temperature field but after some investi‐
147 gation they do not. But fields 194 (which is the standard field for
148 temperature) and 231 are good candidates.
149
150 Then, you can send me a report with outputs from `hddtemp --debug ...',
151 `smartctl' or `hdparm -i ...', and/or add an entry in hddtemp.db your‐
152 self.
153
154
156 If hddtemp crashes (yes, it might) for some unknown reasons, look for a
157 file named hddtemp.backtrace.<PID>.XXXXXX (where XXXXXX is a random
158 number generated at runtime) in /tmp. Then, you can then send me this
159 file and the hddtemp binary. The backtrace functionality is currently
160 supported on i386 architectures only.
161
162
164 smartctl(8), syslog(3), syslogd(8).
165
166
168 Emmanuel Varagnat (hddtemp@guzu.net).
169
170 This manual page was originally written by Aurelien Jarno
171 <aurel32@debian.org>, for the Debian GNU/Linux system (but may be used
172 by others).
173
174
175
176 July 21, 2003 HDDTEMP(8)