1SMARTD(8)                   SMART Monitoring Tools                   SMARTD(8)
2
3
4

NAME

6       smartd - SMART Disk Monitoring Daemon
7
8

SYNOPSIS

10       smartd [options]
11
12

DESCRIPTION

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

OPTIONS

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

EXAMPLES

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

CONFIGURATION

324       The syntax of the smartd.conf(5) file is discussed separately.
325
326

NOTES

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

LOG TIMESTAMP TIMEZONE

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

EXIT STATUS

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

FILES

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

AUTHORS

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

REPORTING BUGS

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

SEE ALSO

457       smartd.conf(5), smartctl(8).
458       update-smart-drivedb(8).
459
460

REFERENCES

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

PACKAGE VERSION

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)
Impressum