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 is
91 led by a date string of the form "yyyy-mm-dd HH:MM:SS" (in UTC).
92
93 MODEL and SERIAL are build from drive identify information,
94 invalid characters are replaced by underline.
95
96 If the PREFIX has the form ´/path/dir/´ (e.g.
97 ´/var/lib/smartd/´), then files ´MODEL-SERIAL.ata.csv´ are cre‐
98 ated in directory ´/path/dir´. If the PREFIX has the form
99 ´/path/name´ (e.g. ´/var/lib/misc/attrlog-´), then files 'nameM‐
100 ODEL-SERIAL.ata.csv' are created in directory '/path/'. The
101 path must be absolute, except if debug mode is enabled.
102
103 -B [+]FILE, --drivedb=[+]FILE
104 [ATA only] Read the drive database from FILE. The new database
105 replaces the built in database by default. If ´+´ is specified,
106 then the new entries prepend the built in entries. Please see
107 the smartctl(8) man page for further details.
108
109 -c FILE, --configfile=FILE
110 Read smartd configuration Directives from FILE, instead of from
111 the default location /etc/smartmontools/smartd.conf (Windows:
112 EXEDIR/smartd.conf). If FILE does not exist, then smartd will
113 print an error message and exit with nonzero status. Thus, ´-c
114 /etc/smartmontools/smartd.conf´ can be used to verify the exis‐
115 tence of the default configuration file.
116
117 By using ´-´ for FILE, the configuration is read from standard
118 input. This is useful for commands like:
119 echo /dev/sdb -m user@home -M test | smartd -c - -q onecheck
120 to perform quick and simple checks without a configuration file.
121
122 -C, --capabilities
123 [Linux only] Use libcap-ng to drop unneeded Linux process capa‐
124 bilities(7). The following capabilities are kept:
125 CAP_SYS_ADMIN, CAP_SYS_RAWIO, CAP_MKNOD.
126
127 Warning: Mail notification does not work when used.
128
129 -d, --debug
130 Runs smartd in "debug" mode. In this mode, it displays status
131 information to STDOUT rather than logging it to SYSLOG and does
132 not fork(2) into the background and detach from the controlling
133 terminal. In this mode, smartd also prints more verbose infor‐
134 mation about what it is doing than when operating in "daemon"
135 mode. In this mode, the INT signal (normally generated from a
136 terminal with CONTROL-C) makes smartd reload its configuration
137 file. Please use CONTROL-\ to exit
138
139 -D, --showdirectives
140 Prints a list (to STDOUT) of all the possible Directives which
141 may appear in the configuration file /etc/smartmon‐
142 tools/smartd.conf, and then exits. These Directives are
143 described in the smartd.conf(5) man page. They may appear in
144 the configuration file following the device name.
145
146 -h, --help, --usage
147 Prints usage message to STDOUT and exits.
148
149 -i N, --interval=N
150 Sets the interval between disk checks to N seconds, where N is a
151 decimal integer. The minimum allowed value is ten and the maxi‐
152 mum is the largest positive integer that can be represented on
153 your system (often 2^31-1). The default is 1800 seconds.
154
155 Note that the superuser can make smartd check the status of the
156 disks at any time by sending it the SIGUSR1 signal, for example
157 with the command:
158 kill -SIGUSR1 <pid>
159 where <pid> is the process id number of smartd. One may also
160 use:
161 killall -USR1 smartd
162 for the same purpose.
163
164 -l FACILITY, --logfacility=FACILITY
165 Uses syslog facility FACILITY to log the messages from smartd.
166 Here FACILITY is one of local0, local1, ..., local7, or daemon
167 [default]. If this command-line option is not used, then by
168 default messages from smartd are logged to the facility daemon.
169
170 If you would like to have smartd messages logged somewhere other
171 than the default location, include (for example) ´-l local3´ in
172 its start up argument list. Tell the syslog daemon to log all
173 messages from facility local3 to (for example)
174 ´/var/log/smartd.log´.
175
176 For more detailed information, please refer to the man pages for
177 the local syslog daemon, typically syslogd(8), syslog-ng(8) or
178 rsyslogd(8).
179
180 -n, --no-fork
181 Do not fork into background; this is useful when executed from
182 modern init methods like initng, minit, supervise or systemd.
183
184 -p NAME, --pidfile=NAME
185 Writes pidfile NAME containing the smartd Process ID number
186 (PID). To avoid symlink attacks make sure the directory to
187 which pidfile is written is only writable for root. Without
188 this option, or if the --debug option is given, no PID file is
189 written on startup. If smartd is killed with a maskable signal
190 then the pidfile is removed.
191
192 -q WHEN, --quit=WHEN
193 Specifies when, if ever, smartd should exit. The valid argu‐
194 ments are to this option are:
195
196 nodev - Exit if there are no devices to monitor, or if any
197 errors are found at startup in the configuration file. This is
198 the default.
199
200 errors - Exit if there are no devices to monitor, or if any
201 errors are found in the configuration file /etc/smartmon‐
202 tools/smartd.conf at startup or whenever it is reloaded.
203
204 nodevstartup - Exit if there are no devices to monitor at
205 startup. But continue to run if no devices are found whenever
206 the configuration file is reloaded.
207
208 never - Only exit if a fatal error occurs (no remaining system
209 memory, invalid command line arguments). In this mode, even if
210 there are no devices to monitor, or if the configuration file
211 /etc/smartmontools/smartd.conf has errors, smartd will continue
212 to run, waiting to load a configuration file listing valid
213 devices.
214
215 onecheck - Start smartd in debug mode, then register devices,
216 then check device´s SMART status once, and then exit with zero
217 exit status if all of these steps worked correctly.
218
219 This last option is intended for ´distribution-writers´ who want
220 to create automated scripts to determine whether or not to auto‐
221 matically start up smartd after installing smartmontools. After
222 starting smartd with this command-line option, the distribu‐
223 tion´s install scripts should wait a reasonable length of time
224 (say ten seconds). If smartd has not exited with zero status by
225 that time, the script should send smartd a SIGTERM or SIGKILL
226 and assume that smartd will not operate correctly on the host.
227 Conversely, if smartd exits with zero status, then it is safe to
228 run smartd in normal daemon mode. If smartd is unable to monitor
229 any devices or encounters other problems then it will return
230 with non-zero exit status.
231
232 showtests - Start smartd in debug mode, then register devices,
233 then write a list of future scheduled self tests to stdout, and
234 then exit with zero exit status if all of these steps worked
235 correctly. Device's SMART status is not checked.
236
237 This option is intended to test whether the '-s REGEX' direc‐
238 tives in smartd.conf will have the desired effect. The output
239 lists the next test schedules, limited to 5 tests per type and
240 device. This is followed by a summary of all tests of each
241 device within the next 90 days.
242
243 -r TYPE, --report=TYPE
244 Intended primarily to help smartmontools developers understand
245 the behavior of smartmontools on non-conforming or poorly-con‐
246 forming hardware. This option reports details of smartd trans‐
247 actions with the device. The option can be used multiple times.
248 When used just once, it shows a record of the ioctl() transac‐
249 tions with the device. When used more than once, the detail of
250 these ioctl() transactions are reported in greater detail. The
251 valid arguments to this option are:
252
253 ioctl - report all ioctl() transactions.
254
255 ataioctl - report only ioctl() transactions with ATA devices.
256
257 scsiioctl - report only ioctl() transactions with SCSI devices.
258
259 nvmeioctl - [FreeBSD, Linux, Windows and Cygwin only] [NEW
260 EXPERIMENTAL SMARTD FEATURE] report only ioctl() transactions
261 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 Please include this information if you are reporting bugs or
304 problems.
305
306
308 smartd
309 Runs the daemon in forked mode. This is the normal way to run smartd.
310 Entries are logged to SYSLOG.
311
312 smartd -d -i 30
313 Run in foreground (debug) mode, checking the disk status every 30 sec‐
314 onds.
315
316 smartd -q onecheck
317 Registers devices, and checks the status of the devices exactly once.
318 The exit status (the shell $? variable) will be zero if all went well,
319 and nonzero if no devices were detected or some other problem was
320 encountered.
321
322
324 The syntax of the smartd.conf(5) file is discussed separately.
325
326
328 smartd will make log entries at loglevel LOG_INFO if the Normalized
329 SMART Attribute values have changed, as reported using the ´-t´, ´-p´,
330 or ´-u´ Directives. For example:
331 ´Device: /dev/sda, SMART Attribute: 194 Temperature_Celsius changed from 94 to 93´
332 Note that in this message, the value given is the ´Normalized´ not the
333 ´Raw´ Attribute value (the disk temperature in this case is about 22
334 Celsius). The ´-R´ and ´-r´ Directives modify this behavior, so that
335 the information is printed with the Raw values as well, for example:
336 ´Device: /dev/sda, SMART Attribute: 194 Temperature_Celsius changed 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 same
401 effect as SIGTERM and causes smartd to exit with zero exit sta‐
402 tus.
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 ´-M exec´ directive on
420 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 <http://www.smartmontools.org/>.
452 Alternatively send the info to the smartmontools support mailing list:
453 <https://lists.sourceforge.net/lists/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: http://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 This is http://www.linuxjournal.com/article/6983 online.
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 http://www.smartmontools.org/wiki/Links .
481
482
484 smartmontools-6.5 2016-05-07 r4318
485 $Id: smartd.8.in 4299 2016-04-16 19:45:57Z chrfranke $
486
487
488
489smartmontools-6.5 2016-05-07 SMARTD(8)