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

EXAMPLES

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

CONFIGURATION

322       The syntax of the smartd.conf(5) file is discussed separately.
323
324

NOTES

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

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

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 '-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

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

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: <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

PACKAGE VERSION

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