1SMARTD(8) SMART Monitoring Tools SMARTD(8)
2
3
4
6 smartd - SMART Disk Monitoring Daemon
7
8
10 smartd [options]
11
12
14 [This man page is generated for the Linux version of smartmontools. It
15 does not contain info specific to other platforms.]
16
17 smartd is a daemon that monitors the Self-Monitoring, Analysis and
18 Reporting Technology (SMART) system built into most ATA/SATA and
19 SCSI/SAS hard drives and solid-state drives. The purpose of SMART is
20 to monitor the reliability of the hard drive and predict drive fail‐
21 ures, and to carry out different types of drive self-tests. This ver‐
22 sion of smartd is compatible with ACS-3, ACS-2, ATA8-ACS, ATA/ATAPI-7
23 and earlier standards (see REFERENCES below).
24
25 smartd will attempt to enable SMART monitoring on ATA devices (equiva‐
26 lent to smartctl -s on) and polls these and SCSI devices every 30 min‐
27 utes (configurable), logging SMART errors and changes of SMART
28 Attributes via the SYSLOG interface. The default location for these
29 SYSLOG notifications and warnings is system-dependent (typically
30 /var/log/messages or /var/log/syslog). To change this default loca‐
31 tion, please see the '-l' command-line option described below.
32
33 In addition to logging to a file, smartd can also be configured to send
34 email warnings if problems are detected. Depending upon the type of
35 problem, you may want to run self-tests on the disk, back up the disk,
36 replace the disk, or use a manufacturer's utility to force reallocation
37 of bad or unreadable disk sectors. If disk problems are detected,
38 please see the smartctl manual page and the smartmontools web page/FAQ
39 for further guidance.
40
41 If you send a USR1 signal to smartd it will immediately check the sta‐
42 tus of the disks, and then return to polling the disks every 30 min‐
43 utes. See the '-i' option below for additional details.
44
45 smartd can be configured at start-up using the configuration file
46 /etc/smartmontools/smartd.conf (Windows: EXEDIR/smartd.conf). If the
47 configuration file is subsequently modified, smartd can be told to re-
48 read the configuration file by sending it a HUP signal, for example
49 with the command:
50 killall -HUP smartd.
51
52 On startup, if smartd finds a syntax error in the configuration file,
53 it will print an error message and then exit. However if smartd is
54 already running, then is told with a HUP signal to re-read the configu‐
55 ration file, and then find a syntax error in this file, it will print
56 an error message and then continue, ignoring the contents of the
57 (faulty) configuration file, as if the HUP signal had never been
58 received.
59
60 When smartd is running in debug mode, the INT signal (normally gener‐
61 ated from a shell with CONTROL-C) is treated in the same way as a HUP
62 signal: it makes smartd reload its configuration file. To exit smartd
63 use CONTROL-\.
64
65 On startup, in the absence of the configuration file /etc/smartmon‐
66 tools/smartd.conf, the smartd daemon first scans for all devices that
67 support SMART. The scanning is done as follows:
68
69 LINUX: Examine all entries "/dev/hd[a-t]" for IDE/ATA devices, and
70 "/dev/sd[a-z]", "/dev/sd[a-c][a-z]" for ATA/SATA or SCSI/SAS
71 devices. Disks behind RAID controllers are not included.
72
73 [NEW EXPERIMENTAL SMARTD FEATURE] If directive '-d nvme' is
74 specified, examine all entries "/dev/nvme[0-99]" for NVMe
75 devices.
76
77 smartd then monitors for all possible SMART errors (corresponding to
78 the '-a' Directive in the configuration file; see the smartd.conf(5)
79 man page).
80
81
83 -A PREFIX, --attributelog=PREFIX
84 Writes smartd attribute information (normalized and raw
85 attribute values) to files 'PREFIX''MODEL-SERIAL.ata.csv' or
86 'PREFIX''VENDOR-MODEL-SERIAL.scsi.csv'. At each check cycle
87 attributes are logged as a line of semicolon separated triplets
88 of the form "attribute-ID;attribute-norm-value;attribute-raw-
89 value;". For SCSI devices error counters and temperature
90 recorded in the form "counter-name;counter-value;". Each line
91 is led by a date string of the form "yyyy-mm-dd HH:MM:SS" (in
92 UTC).
93
94 MODEL and SERIAL are build from drive identify information,
95 invalid characters are replaced by underline.
96
97 If the PREFIX has the form '/path/dir/' (e.g.
98 '/var/lib/smartd/'), then files 'MODEL-SERIAL.ata.csv' are cre‐
99 ated in directory '/path/dir'. If the PREFIX has the form
100 '/path/name' (e.g. '/var/lib/misc/attrlog-'), then files 'nameM‐
101 ODEL-SERIAL.ata.csv' are created in directory '/path/'. The
102 path must be absolute, except if debug mode is enabled.
103
104 -B [+]FILE, --drivedb=[+]FILE
105 [ATA only] Read the drive database from FILE. The new database
106 replaces the built in database by default. If '+' is specified,
107 then the new entries prepend the built in entries. Please see
108 the smartctl(8) man page for further details.
109
110 -c FILE, --configfile=FILE
111 Read smartd configuration Directives from FILE, instead of from
112 the default location /etc/smartmontools/smartd.conf (Windows:
113 EXEDIR/smartd.conf). If FILE does not exist, then smartd will
114 print an error message and exit with nonzero status. Thus, '-c
115 /etc/smartmontools/smartd.conf' can be used to verify the exis‐
116 tence of the default configuration file.
117
118 By using '-' for FILE, the configuration is read from standard
119 input. This is useful for commands like:
120 echo /dev/sdb -m user@home -M test | smartd -c - -q onecheck
121 to perform quick and simple checks without a configuration file.
122
123 -C, --capabilities
124 [Linux only] Use libcap-ng to drop unneeded Linux process capa‐
125 bilities(7). The following capabilities are kept:
126 CAP_SYS_ADMIN, CAP_SYS_RAWIO, CAP_MKNOD.
127
128 Warning: Mail notification does not work when used.
129
130 -d, --debug
131 Runs smartd in "debug" mode. In this mode, it displays status
132 information to STDOUT rather than logging it to SYSLOG and does
133 not fork(2) into the background and detach from the controlling
134 terminal. In this mode, smartd also prints more verbose infor‐
135 mation about what it is doing than when operating in "daemon"
136 mode. In this mode, the INT signal (normally generated from a
137 terminal with CONTROL-C) makes smartd reload its configuration
138 file. Please use CONTROL-\ to exit
139
140 -D, --showdirectives
141 Prints a list (to STDOUT) of all the possible Directives which
142 may appear in the configuration file /etc/smartmon‐
143 tools/smartd.conf, and then exits. These Directives are
144 described in the smartd.conf(5) man page. They may appear in
145 the configuration file following the device name.
146
147 -h, --help, --usage
148 Prints usage message to STDOUT and exits.
149
150 -i N, --interval=N
151 Sets the interval between disk checks to N seconds, where N is a
152 decimal integer. The minimum allowed value is ten and the maxi‐
153 mum is the largest positive integer that can be represented on
154 your system (often 2^31-1). The default is 1800 seconds.
155
156 Note that the superuser can make smartd check the status of the
157 disks at any time by sending it the SIGUSR1 signal, for example
158 with the command:
159 kill -SIGUSR1 <pid>
160 where <pid> is the process id number of smartd. One may also
161 use:
162 killall -USR1 smartd
163 for the same purpose.
164
165 -l FACILITY, --logfacility=FACILITY
166 Uses syslog facility FACILITY to log the messages from smartd.
167 Here FACILITY is one of local0, local1, ..., local7, or daemon
168 [default]. If this command-line option is not used, then by
169 default messages from smartd are logged to the facility daemon.
170
171 If you would like to have smartd messages logged somewhere other
172 than the default location, include (for example) '-l local3' in
173 its start up argument list. Tell the syslog daemon to log all
174 messages from facility local3 to (for example)
175 '/var/log/smartd.log'.
176
177 For more detailed information, please refer to the man pages for
178 the local syslog daemon, typically syslogd(8), syslog-ng(8) or
179 rsyslogd(8).
180
181 -n, --no-fork
182 Do not fork into background; this is useful when executed from
183 modern init methods like initng, minit, supervise or systemd.
184
185 -p NAME, --pidfile=NAME
186 Writes pidfile NAME containing the smartd Process ID number
187 (PID). To avoid symlink attacks make sure the directory to
188 which pidfile is written is only writable for root. Without
189 this option, or if the --debug option is given, no PID file is
190 written on startup. If smartd is killed with a maskable signal
191 then the pidfile is removed.
192
193 -q WHEN, --quit=WHEN
194 Specifies when, if ever, smartd should exit. The valid argu‐
195 ments are to this option are:
196
197 nodev - Exit if there are no devices to monitor, or if any
198 errors are found at startup in the configuration file. This is
199 the default.
200
201 errors - Exit if there are no devices to monitor, or if any
202 errors are found in the configuration file /etc/smartmon‐
203 tools/smartd.conf at startup or whenever it is reloaded.
204
205 nodevstartup - Exit if there are no devices to monitor at
206 startup. But continue to run if no devices are found whenever
207 the configuration file is reloaded.
208
209 never - Only exit if a fatal error occurs (no remaining system
210 memory, invalid command line arguments). In this mode, even if
211 there are no devices to monitor, or if the configuration file
212 /etc/smartmontools/smartd.conf has errors, smartd will continue
213 to run, waiting to load a configuration file listing valid
214 devices.
215
216 onecheck - Start smartd in debug mode, then register devices,
217 then check device's SMART status once, and then exit with zero
218 exit status if all of these steps worked correctly.
219
220 This last option is intended for 'distribution-writers' who want
221 to create automated scripts to determine whether or not to auto‐
222 matically start up smartd after installing smartmontools. After
223 starting smartd with this command-line option, the distribu‐
224 tion's install scripts should wait a reasonable length of time
225 (say ten seconds). If smartd has not exited with zero status by
226 that time, the script should send smartd a SIGTERM or SIGKILL
227 and assume that smartd will not operate correctly on the host.
228 Conversely, if smartd exits with zero status, then it is safe to
229 run smartd in normal daemon mode. If smartd is unable to moni‐
230 tor any devices or encounters other problems then it will return
231 with non-zero exit status.
232
233 showtests - Start smartd in debug mode, then register devices,
234 then write a list of future scheduled self tests to stdout, and
235 then exit with zero exit status if all of these steps worked
236 correctly. Device's SMART status is not checked.
237
238 This option is intended to test whether the '-s REGEX' direc‐
239 tives in smartd.conf will have the desired effect. The output
240 lists the next test schedules, limited to 5 tests per type and
241 device. This is followed by a summary of all tests of each
242 device within the next 90 days.
243
244 -r TYPE, --report=TYPE
245 Intended primarily to help smartmontools developers understand
246 the behavior of smartmontools on non-conforming or poorly-con‐
247 forming hardware. This option reports details of smartd trans‐
248 actions with the device. The option can be used multiple times.
249 When used just once, it shows a record of the ioctl() transac‐
250 tions with the device. When used more than once, the detail of
251 these ioctl() transactions are reported in greater detail. The
252 valid arguments to this option are:
253
254 ioctl - report all ioctl() transactions.
255
256 ataioctl - report only ioctl() transactions with ATA devices.
257
258 scsiioctl - report only ioctl() transactions with SCSI devices.
259
260 nvmeioctl - [NEW EXPERIMENTAL SMARTD FEATURE] report only
261 ioctl() transactions with NVMe devices.
262
263 Any argument may include a positive integer to specify the level
264 of detail that should be reported. The argument should be fol‐
265 lowed by a comma then the integer with no spaces. For example,
266 ataioctl,2 The default level is 1, so '-r ataioctl,1' and '-r
267 ataioctl' are equivalent.
268
269 -s PREFIX, --savestates=PREFIX
270 Reads/writes smartd state information from/to files 'PRE‐
271 FIX''MODEL-SERIAL.ata.state' or 'PREFIX''VEN‐
272 DOR-MODEL-SERIAL.scsi.state'. This preserves SMART attributes,
273 drive min and max temperatures (-W directive), info about last
274 sent warning email (-m directive), and the time of next check of
275 the self-test REGEXP (-s directive) across boot cycles.
276
277 MODEL and SERIAL are build from drive identify information,
278 invalid characters are replaced by underline.
279
280 If the PREFIX has the form '/path/dir/' (e.g.
281 '/var/lib/smartd/'), then files 'MODEL-SERIAL.ata.state' are
282 created in directory '/path/dir'. If the PREFIX has the form
283 '/path/name' (e.g. '/var/lib/misc/smartd-'), then files 'nameMO‐
284 DEL-SERIAL.ata.state' are created in directory '/path/'. The
285 path must be absolute, except if debug mode is enabled.
286
287 The state information files are read on smartd startup. The
288 files are always (re)written after reading the configuration
289 file, before rereading the configuration file (SIGHUP), before
290 smartd shutdown, and after a check forced by SIGUSR1. After a
291 normal check cycle, a file is only rewritten if an important
292 change (which usually results in a SYSLOG output) occurred.
293
294 -w PATH, --warnexec=PATH
295 Run the executable PATH instead of the default script when
296 smartd needs to send warning messages. PATH must point to an
297 executable binary file or script. The default script is
298 /etc/smartmontools/smartd_warning.sh.
299
300 -V, --version, --license, --copyright
301 Prints version, copyright, license, home page and SVN revision
302 information for your copy of smartd to STDOUT and then exits.
303
304
306 smartd
307 Runs the daemon in forked mode. This is the normal way to run smartd.
308 Entries are logged to SYSLOG.
309
310 smartd -d -i 30
311 Run in foreground (debug) mode, checking the disk status every 30 sec‐
312 onds.
313
314 smartd -q onecheck
315 Registers devices, and checks the status of the devices exactly once.
316 The exit status (the shell $? variable) will be zero if all went well,
317 and nonzero if no devices were detected or some other problem was
318 encountered.
319
320
322 The syntax of the smartd.conf(5) file is discussed separately.
323
324
326 smartd will make log entries at loglevel LOG_INFO if the Normalized
327 SMART Attribute values have changed, as reported using the '-t', '-p',
328 or '-u' Directives. For example:
329 'Device: /dev/sda, SMART Attribute: 194 Temperature_Celsius changed
330 from 94 to 93'
331 Note that in this message, the value given is the 'Normalized' not the
332 'Raw' Attribute value (the disk temperature in this case is about 22
333 Celsius). The '-R' and '-r' Directives modify this behavior, so that
334 the information is printed with the Raw values as well, for example:
335 'Device: /dev/sda, SMART Attribute: 194 Temperature_Celsius changed
336 from 94 [Raw 22] to 93 [Raw 23]'
337 Here the Raw values are the actual disk temperatures in Celsius. The
338 way in which the Raw values are printed, and the names under which the
339 Attributes are reported, is governed by the various '-v Num,Descrip‐
340 tion' Directives described previously.
341
342 Please see the smartctl manual page for further explanation of the dif‐
343 ferences between Normalized and Raw Attribute values.
344
345 smartd will make log entries at loglevel LOG_CRIT if a SMART Attribute
346 has failed, for example:
347 'Device: /dev/sdc, Failed SMART Attribute: 5 Reallocated_Sector_Ct'
348 This loglevel is used for reporting enabled by the '-H', -f',
349 '-l selftest', and '-l error' Directives. Entries reporting failure of
350 SMART Prefailure Attributes should not be ignored: they mean that the
351 disk is failing. Use the smartctl utility to investigate.
352
353
355 When smartd makes log entries, these are time-stamped. The time stamps
356 are in the computer's local time zone, which is generally set using
357 either the environment variable 'TZ' or using a time-zone file such as
358 /etc/localtime. You may wish to change the timezone while smartd is
359 running (for example, if you carry a laptop to a new time-zone and
360 don't reboot it). Due to a bug in the tzset(3) function of many unix
361 standard C libraries, the time-zone stamps of smartd might not change.
362 For some systems, smartd will work around this problem if the time-zone
363 is set using /etc/localtime. The work-around fails if the time-zone is
364 set using the 'TZ' variable (or a file that it points to).
365
366
368 The exit status (return value) of smartd can have the following values:
369
370 0: Daemon startup successful, or smartd was killed by a SIGTERM (or
371 in debug mode, a SIGQUIT).
372
373 1: Commandline did not parse.
374
375 2: There was a syntax error in the config file.
376
377 3: Forking the daemon failed.
378
379 4: Couldn't create PID file.
380
381 5: Config file does not exist (only returned in conjunction with
382 the '-c' option).
383
384 6: Config file exists, but cannot be read.
385
386 8: smartd ran out of memory during startup.
387
388 10: An inconsistency was found in smartd's internal data structures.
389 This should never happen. It must be due to either a coding or
390 compiler bug. Please report such failures to smartmontools
391 developers, see REPORTING BUGS below.
392
393 16: A device explicitly listed in /etc/smartmontools/smartd.conf
394 can't be monitored.
395
396 17: smartd didn't find any devices to monitor.
397
398 254: When in daemon mode, smartd received a SIGINT or SIGQUIT. (Note
399 that in debug mode, SIGINT has the same effect as SIGHUP, and
400 makes smartd reload its configuration file. SIGQUIT has the
401 same effect as SIGTERM and causes smartd to exit with zero exit
402 status.
403
404 132 and above
405 smartd was killed by a signal that is not explicitly listed
406 above. The exit status is then 128 plus the signal number. For
407 example if smartd is killed by SIGKILL (signal 9) then the exit
408 status is 137.
409
410
412 /usr/sbin/smartd
413 full path of this executable.
414
415 /etc/smartmontools/smartd.conf
416 configuration file (see smartd.conf(5) man page).
417
418 /etc/smartmontools/smartd_warning.sh
419 script run on warnings (see '-w' option above and '-M exec'
420 directive on smartd.conf(5) man page).
421
422 /etc/smartmontools/smartd_warning.d/
423 plugin directory for smartd warning script (see '-m' directive
424 on smartd.conf(5) man page).
425
426 /usr/share/smartmontools/drivedb.h
427 drive database (see '-B' option).
428
429 /etc/smartmontools/smart_drivedb.h
430 optional local drive database (see '-B' option).
431
432
434 Bruce Allen (project initiator),
435 Christian Franke (project manager, Windows port and all sort of
436 things),
437 Douglas Gilbert (SCSI subsystem),
438 Volker Kuhlmann (moderator of support and database mailing list),
439 Gabriele Pohl (wiki & development team support),
440 Alex Samorukov (FreeBSD port and more, new Trac wiki).
441
442 Many other individuals have made contributions and corrections, see
443 AUTHORS, ChangeLog and repository files.
444
445 The first smartmontools code was derived from the smartsuite package,
446 written by Michael Cornwell and Andre Hedrick.
447
448
450 To submit a bug report, create a ticket in smartmontools wiki:
451 <https://www.smartmontools.org/>.
452 Alternatively send the info to the smartmontools support mailing list:
453 <https://listi.jpberlin.de/mailman/listinfo/smartmontools-support>.
454
455
457 smartd.conf(5), smartctl(8).
458 update-smart-drivedb(8).
459
460
462 Please see the following web site for more info: <https://www.smartmon‐
463 tools.org/>
464
465 An introductory article about smartmontools is Monitoring Hard Disks
466 with SMART, by Bruce Allen, Linux Journal, January 2004, pages 74–77.
467 See <https://www.linuxjournal.com/article/6983>.
468
469 If you would like to understand better how SMART works, and what it
470 does, a good place to start is with Sections 4.8 and 6.54 of the first
471 volume of the 'AT Attachment with Packet Interface-7' (ATA/ATAPI-7)
472 specification Revision 4b. This documents the SMART functionality
473 which the smartmontools utilities provide access to.
474
475 The functioning of SMART was originally defined by the SFF-8035i revi‐
476 sion 2 and the SFF-8055i revision 1.4 specifications. These are publi‐
477 cations of the Small Form Factors (SFF) Committee.
478
479 Links to these and other documents may be found on the Links page of
480 the smartmontools Wiki at <https://www.smartmontools.org/wiki/Links>.
481
482
484 smartmontools-6.6 2017-11-05 r4594
485 $Id: smartd.8.in 4576 2017-10-29 16:41:44Z chrfranke $
486
487
488
489smartmontools-6.6 2017-11-05 SMARTD(8)