]> git.proxmox.com Git - mirror_smartmontools-debian.git/blob - smartd.8.in
43c773f24090188596ad6b389d528adf51494c1a
[mirror_smartmontools-debian.git] / smartd.8.in
1 .ig
2 Copyright (C) 2002-10 Bruce Allen <smartmontools-support@lists.sourceforge.net>
3
4 $Id: smartd.8.in 3284 2011-03-04 21:33:35Z chrfranke $
5
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2, or (at your option)
9 any later version.
10
11 You should have received a copy of the GNU General Public License (for
12 example COPYING); if not, write to the Free Software Foundation, Inc.,
13 675 Mass Ave, Cambridge, MA 02139, USA.
14
15 This code was originally developed as a Senior Thesis by Michael
16 Cornwell at the Concurrent Systems Laboratory (now part of the Storage
17 Systems Research Center), Jack Baskin School of Engineering,
18 University of California, Santa Cruz. http://ssrc.soe.ucsc.edu/
19 ..
20 .TH SMARTD 8 CURRENT_SVN_DATE CURRENT_SVN_VERSION CURRENT_SVN_DATE
21 .SH NAME
22 \fBsmartd\fP \- SMART Disk Monitoring Daemon
23
24 .SH SYNOPSIS
25 .B smartd [options]
26
27 .SH FULL PATH
28 .B /usr/local/sbin/smartd
29
30 .SH PACKAGE VERSION
31 CURRENT_SVN_VERSION CURRENT_SVN_DATE CURRENT_SVN_REV
32
33 .SH DESCRIPTION
34 \fBsmartd\fP is a daemon that monitors the Self-Monitoring, Analysis
35 and Reporting Technology (SMART) system built into many ATA-3 and
36 later ATA, IDE and SCSI-3 hard drives. The purpose of SMART is to
37 monitor the reliability of the hard drive and predict drive failures,
38 and to carry out different types of drive self-tests. This version of
39 \fBsmartd\fP is compatible with ATA/ATAPI-7 and earlier standards (see
40 \fBREFERENCES\fP below).
41
42 \fBsmartd\fP will attempt to enable SMART monitoring on ATA devices
43 (equivalent to \fBsmartctl -s on\fP) and polls these and SCSI devices
44 every 30 minutes (configurable), logging SMART errors and changes of
45 SMART Attributes via the SYSLOG interface. The default location for
46 these SYSLOG notifications and warnings is system-dependent
47 (typically \fB/var/log/messages\fP or \fB/var/log/syslog\fP).
48 To change this default location, please see the \fB\'-l\'\fP
49 command-line option described below.
50
51 In addition to logging to a file, \fBsmartd\fP can also be configured
52 to send email warnings if problems are detected. Depending upon the
53 type of problem, you may want to run self\-tests on the disk, back up
54 the disk, replace the disk, or use a manufacturer\'s utility to force
55 reallocation of bad or unreadable disk sectors. If disk problems are
56 detected, please see the \fBsmartctl\fP manual page and the
57 \fBsmartmontools\fP web page/FAQ for further guidance.
58
59 If you send a \fBUSR1\fP signal to \fBsmartd\fP it will immediately
60 check the status of the disks, and then return to polling the disks
61 every 30 minutes. See the \fB\'\-i\'\fP option below for additional
62 details.
63
64 \fBsmartd\fP can be configured at start-up using the configuration
65 file \fB/usr/local/etc/smartd.conf\fP (Windows: \fBEXEDIR/smartd.conf\fP).
66 If the configuration file is subsequently modified, \fBsmartd\fP
67 can be told to re-read the configuration file by sending it a
68 \fBHUP\fP signal, for example with the command:
69 .fi
70 \fBkillall -HUP smartd\fP.
71 .fi
72 (Windows: See NOTES below.)
73
74 On startup, if \fBsmartd\fP finds a syntax error in the configuration
75 file, it will print an error message and then exit. However if
76 \fBsmartd\fP is already running, then is told with a \fBHUP\fP signal
77 to re-read the configuration file, and then find a syntax error in
78 this file, it will print an error message and then continue, ignoring
79 the contents of the (faulty) configuration file, as if the \fBHUP\fP
80 signal had never been received.
81
82 When \fBsmartd\fP is running in debug mode, the \fBINT\fP signal
83 (normally generated from a shell with CONTROL\-C) is treated in the
84 same way as a \fBHUP\fP signal: it makes \fBsmartd\fP reload its
85 configuration file. To exit \fBsmartd\fP use CONTROL-\e
86 (Cygwin: 2x CONTROL\-C, Windows: CONTROL\-Break).
87
88 On startup, in the absence of the configuration file
89 \fB/usr/local/etc/smartd.conf\fP, the \fBsmartd\fP daemon first scans for all
90 devices that support SMART. The scanning is done as follows:
91 .IP \fBLINUX:\fP 9
92 Examine all entries \fB"/dev/hd[a-t]"\fP for IDE/ATA
93 devices, and \fB"/dev/sd[a-z]"\fP, \fB"/dev/sd[a-c][a-z]"\fP
94 for SCSI or SATA devices.
95 .IP \fBFREEBSD:\fP 9
96 Authoritative list of disk devices is obtained from SCSI (CAM) and ATA subsystems.
97 .IP \fBNETBSD/OPENBSD:\fP 9
98 Authoritative list of disk devices is obtained from sysctl
99 \'hw.disknames\'.
100 .IP \fBSOLARIS:\fP 9
101 Examine all entries \fB"/dev/rdsk/c?t?d?s?"\fP for IDE/ATA and SCSI disk
102 devices, and entries \fB"/dev/rmt/*"\fP for SCSI tape devices.
103 .IP \fBDARWIN:\fP 9
104 The IOService plane is scanned for ATA block storage devices.
105 .IP \fBWINDOWS\ 9x/ME\fP: 9
106 Examine all entries \fB"/dev/hd[a-d]"\fP (bitmask
107 from "\\\\.\\SMARTVSD") for IDE/ATA devices.
108 Examine all entries \fB"/dev/scsi[0\-9][0\-f]"\fP for SCSI devices
109 on ASPI adapter 0\-9, ID 0\-15.
110 .IP \fBWINDOWS\ NT4/2000/XP/2003/Vista/Win7/2008\fP: 9
111 Examine all entries \fB"/dev/sd[a-j]"\fP ("\\\\.\\PhysicalDrive[0-9]")
112 for IDE/(S)ATA and SCSI disk devices
113
114 If a 3ware 9000 controller is installed, examine all entries
115 \fB"/dev/sdX,N"\fP for the first logical drive (\'unit\'
116 \fB"/dev/sdX"\fP) and all physical disks (\'ports\' \fB",N"\fP)
117 detected behind this controller. Same for a second controller if present.
118
119 [NEW EXPERIMENTAL SMARTD FEATURE] If directive \'\-d csmi\' is specified,
120 examine all entries \fB"/dev/csmi[0\-9],N"\fP for drives behind Intel
121 Matrix RAID driver.
122 .IP \fBCYGWIN\fP: 9
123 See "WINDOWS NT4/2000/XP/2003/Vista/Win7/2008" above.
124 .IP \fBOS/2,eComStation\fP: 9
125 Use the form \fB"/dev/hd[a\-z]"\fP for IDE/ATA devices.
126 .PP
127 \fBsmartd\fP then monitors
128 for \fIall\fP possible SMART errors (corresponding to the \fB\'\-a\'\fP
129 Directive in the configuration file; see \fBCONFIGURATION FILE\fP
130 below).
131
132 .SH
133 OPTIONS
134
135 .TP
136 .B \-A PREFIX, \-\-attributelog=PREFIX
137 [ATA only] Writes \fBsmartd\fP attribute information (normalized and raw
138 attribute values) to files \'PREFIX\'\'MODEL\-SERIAL.ata.csv\'. At each
139 check cycle attributes are logged as a line of semicolon separated triplets
140 of the form "attribute-ID;attribute-norm-value;attribute-raw-value;".
141 Each line is led by a date string of the form "yyyy-mm-dd HH:MM:SS" (in UTC).
142
143 .\" BEGIN ENABLE_ATTRIBUTELOG
144 If this option is not specified, attribute information is written to files
145 \'/usr/local/var/lib/smartmontools/attrlog.MODEL\-SERIAL.ata.csv\'.
146 To disable attribute log files, specify this option with an empty string
147 argument: \'-A ""\'.
148 .\" END ENABLE_ATTRIBUTELOG
149 MODEL and SERIAL are build from drive identify information, invalid
150 characters are replaced by underline.
151
152 If the PREFIX has the form \'/path/dir/\' (e.g. \'/var/lib/smartd/\'), then
153 files \'MODEL\-SERIAL.ata.csv\' are created in directory \'/path/dir\'.
154 If the PREFIX has the form \'/path/name\' (e.g. \'/var/lib/misc/attrlog\-\'),
155 then files 'nameMODEL\-SERIAL.ata.csv' are created in directory '/path/'.
156 The path must be absolute, except if debug mode is enabled.
157 .TP
158 .B \-B [+]FILE, \-\-drivedb=[+]FILE
159 [ATA only] Read the drive database from FILE. The new database replaces
160 the built in database by default. If \'+\' is specified, then the new entries
161 prepend the built in entries.
162 Please see the \fBsmartctl\fP(8) man page for further details.
163 .TP
164 .B \-c FILE, \-\-configfile=FILE
165 Read \fBsmartd\fP configuration Directives from FILE, instead of from
166 the default location \fB/usr/local/etc/smartd.conf\fP (Windows: \fBEXEDIR/smartd.conf\fP).
167 If FILE does \fBnot\fP exist, then \fBsmartd\fP will print an error
168 message and exit with nonzero status. Thus, \'\-c /usr/local/etc/smartd.conf\'
169 can be used to verify the existence of the default configuration file.
170
171 By using \'\-\' for FILE, the configuration is read from standard
172 input. This is useful for commands like:
173 .nf
174 .B echo /dev/hdb \-m user@home \-M test | smartd \-c \- \-q onecheck
175 .fi
176 to perform quick and simple checks without a configuration file.
177 .\" BEGIN ENABLE_CAPABILITIES
178 .TP
179 .B \-C, \-\-capabilities
180 Use \fBcapabilities(7)\fP (EXPERIMENTAL).
181
182 Warning: Mail notification does not work when used.
183 .\" END ENABLE_CAPABILITIES
184 .TP
185 .B \-d, \-\-debug
186 Runs \fBsmartd\fP in "debug" mode. In this mode, it displays status
187 information to STDOUT rather than logging it to SYSLOG and does not
188 \fBfork(2)\fP into the background and detach from the controlling
189 terminal. In this mode, \fBsmartd\fP also prints more verbose
190 information about what it is doing than when operating in "daemon"
191 mode. In this mode, the \fBQUIT\fP signal (normally generated from a
192 terminal with CONTROL\-C) makes \fBsmartd\fP reload its configuration
193 file. Please use CONTROL-\e to exit
194 (Cygwin: 2x CONTROL\-C, Windows: CONTROL\-Break).
195
196 Windows only: The "debug" mode can be toggled by the command
197 \fBsmartd sigusr2\fP. A new console for debug output is opened when
198 debug mode is enabled.
199 .TP
200 .B \-D, \-\-showdirectives
201 Prints a list (to STDOUT) of all the possible Directives which may
202 appear in the configuration file /usr/local/etc/smartd.conf, and then exits.
203 These Directives are also described later in this man page. They may
204 appear in the configuration file following the device name.
205 .TP
206 .B \-h, \-\-help, \-\-usage
207 Prints usage message to STDOUT and exits.
208 .TP
209 .B \-i N, \-\-interval=N
210 Sets the interval between disk checks to \fIN\fP seconds, where
211 \fIN\fP is a decimal integer. The minimum allowed value is ten and
212 the maximum is the largest positive integer that can be represented on
213 your system (often 2^31-1). The default is 1800 seconds.
214
215 Note that the superuser can make \fBsmartd\fP check the status of the
216 disks at any time by sending it the \fBSIGUSR1\fP signal, for example
217 with the command:
218 .nf
219 .B kill -SIGUSR1 <pid>
220 .fi
221 where \fB<pid>\fP is the process id number of \fBsmartd\fP. One may
222 also use:
223 .nf
224 .B killall -USR1 smartd
225 .fi
226 for the same purpose.
227 .fi
228 (Windows: See NOTES below.)
229 .TP
230 .B \-l FACILITY, \-\-logfacility=FACILITY
231 Uses syslog facility FACILITY to log the messages from \fBsmartd\fP.
232 Here FACILITY is one of \fIlocal0\fP, \fIlocal1\fP, ..., \fIlocal7\fP,
233 or \fIdaemon\fP [default]. If this command-line option is not used,
234 then by default messages from \fBsmartd\fP are logged to the facility
235 \fIdaemon\fP.
236
237 If you would like to have \fBsmartd\fP messages logged somewhere other
238 than the default location, this can typically be accomplished with
239 (for example) the following steps:
240 .RS 7
241 .IP \fB[1]\fP 4
242 Modify the script that starts \fBsmartd\fP to include the \fBsmartd\fP
243 command-line argument \'\-l local3\'. This tells \fBsmartd\fP to log its
244 messages to facility \fBlocal3\fP.
245 .IP \fB[2]\fP 4
246 Modify the \fBsyslogd\fP configuration file (typically
247 \fB/etc/syslog.conf\fP) by adding a line of the form:
248 .nf
249 \fBlocal3.* /var/log/smartd.log\fP
250 .fi
251 This tells \fBsyslogd\fP to log all the messages from facility \fBlocal3\fP to
252 the designated file: /var/log/smartd.log.
253 .IP \fB[3]\fP 4
254 Tell \fBsyslogd\fP to re-read its configuration file, typically by
255 sending the \fBsyslogd\fP process a \fBSIGHUP\fP hang-up signal.
256 .IP \fB[4]\fP 4
257 Start (or restart) the \fBsmartd\fP daemon.
258 .RE
259 .\" The following two lines are a workaround for a man2html bug. Please leave them.
260 .\" They define a non-existent option; useful because man2html can't correctly reset the margins.
261 .TP
262 .B \&
263 For more detailed information, please refer to the man pages for
264 \fBsyslog.conf\fP, \fBsyslogd\fP, and \fBsyslog\fP. You may also want
265 to modify the log rotation configuration files; see the man pages for
266 \fBlogrotate\fP and examine your system\'s /etc/logrotate.conf file.
267
268 Cygwin: Support for \fBsyslogd\fP as described above is available starting with Cygwin 1.5.15.
269 On older releases or if no local \fBsyslogd\fP is running, the \'\-l\' option has no effect.
270 In this case, all \fBsyslog\fP messages are written to Windows event log
271 or to file \fBC:/CYGWIN_SYSLOG.TXT\fP if the event log is not available.
272
273 Windows: Some \fBsyslog\fP functionality is implemented
274 internally in \fBsmartd\fP as follows: If no \'\-l\' option
275 (or \'\-l daemon\') is specified, messages are written to Windows
276 event log or to file \fB./smartd.log\fP if event log is not available
277 (Win9x/ME or access denied). By specifying other values of FACILITY,
278 log output is redirected as follows:
279 \'\-l local0\' to file \fB./smartd.log\fP,
280 \'\-l local1\' to standard output (redirect with \'>\' to any file),
281 \'\-l local2\' to standard error,
282 \'\-l local[3-7]\': to file \fB./smartd[1-5].log\fP.
283
284 When using the event log, the enclosed utility \fBsyslogevt.exe\fP
285 should be registered as an event message file to avoid error
286 messages from the event viewer. Use \'\fBsyslogevt -r smartd\fP\'
287 to register, \'\fBsyslogevt -u smartd\fP\' to unregister and
288 \'\fBsyslogevt\fP\' for more help.
289 .TP
290 .B \-n, \-\-no\-fork
291 Do not fork into background; this is useful when executed from modern
292 init methods like initng, minit or supervise.
293
294 On Cygwin, this allows running \fBsmartd\fP as service via cygrunsrv,
295 see NOTES below.
296
297 On Windows, this option is not available, use \'\-\-service\' instead.
298 .TP
299 .B \-p NAME, \-\-pidfile=NAME
300 Writes pidfile \fINAME\fP containing the \fBsmartd\fP Process ID
301 number (PID). To avoid symlink attacks make sure the directory to
302 which pidfile is written is only writable for root. Without this
303 option, or if the \-\-debug option is given, no PID file is written on
304 startup. If \fBsmartd\fP is killed with a maskable signal then the
305 pidfile is removed.
306 .TP
307 .B \-q WHEN, \-\-quit=WHEN
308 Specifies when, if ever, \fBsmartd\fP should exit. The valid
309 arguments are to this option are:
310
311 .I nodev
312 \- Exit if there are no devices to monitor, or if any errors are found
313 at startup in the configuration file. This is the default.
314
315 .I errors
316 \- Exit if there are no devices to monitor, or if any errors are found
317 in the configuration file /usr/local/etc/smartd.conf at startup or whenever it
318 is reloaded.
319
320 .I nodevstartup
321 \- Exit if there are no devices to monitor at startup. But continue
322 to run if no devices are found whenever the configuration file is
323 reloaded.
324
325 .I never
326 \- Only exit if a fatal error occurs (no remaining system memory,
327 invalid command line arguments). In this mode, even if there are no
328 devices to monitor, or if the configuration file
329 \fB/usr/local/etc/smartd.conf\fP has errors, \fBsmartd\fP will continue to run,
330 waiting to load a configuration file listing valid devices.
331
332 .I onecheck
333 \- Start \fBsmartd\fP in debug mode, then register devices, then check
334 device\'s SMART status once, and then exit with zero exit status if all
335 of these steps worked correctly.
336
337 This last option is intended for \'distribution-writers\' who want to
338 create automated scripts to determine whether or not to automatically
339 start up \fBsmartd\fP after installing smartmontools. After starting
340 \fBsmartd\fP with this command-line option, the distribution\'s install
341 scripts should wait a reasonable length of time (say ten seconds). If
342 \fBsmartd\fP has not exited with zero status by that time, the script
343 should send \fBsmartd\fP a SIGTERM or SIGKILL and assume that
344 \fBsmartd\fP will not operate correctly on the host. Conversely, if
345 \fBsmartd\fP exits with zero status, then it is safe to run
346 \fBsmartd\fP in normal daemon mode. If \fBsmartd\fP is unable to
347 monitor any devices or encounters other problems then it will return
348 with non-zero exit status.
349
350 .I showtests
351 \- Start \fBsmartd\fP in debug mode, then register devices, then write
352 a list of future scheduled self tests to stdout, and then exit with zero
353 exit status if all of these steps worked correctly.
354 Device's SMART status is not checked.
355
356 This option is intended to test whether the '-s REGEX' directives in
357 smartd.conf will have the desired effect. The output lists the next test
358 schedules, limited to 5 tests per type and device. This is followed by a
359 summary of all tests of each device within the next 90 days.
360 .TP
361 .B \-r TYPE, \-\-report=TYPE
362 Intended primarily to help
363 .B smartmontools
364 developers understand the behavior of
365 .B smartmontools
366 on non-conforming or poorly-conforming hardware. This option reports
367 details of
368 \fBsmartd\fP
369 transactions with the device. The option can be used multiple times.
370 When used just once, it shows a record of the ioctl() transactions
371 with the device. When used more than once, the detail of these ioctl()
372 transactions are reported in greater detail. The valid arguments to
373 this option are:
374
375 .I ioctl
376 \- report all ioctl() transactions.
377
378 .I ataioctl
379 \- report only ioctl() transactions with ATA devices.
380
381 .I scsiioctl
382 \- report only ioctl() transactions with SCSI devices.
383
384 Any argument may include a positive integer to specify the level of
385 detail that should be reported. The argument should be followed by a
386 comma then the integer with no spaces. For example, \fIataioctl,2\fP
387 The default level is 1, so \'\-r ataioctl,1\' and \'\-r ataioctl\' are
388 equivalent.
389 .TP
390 .B \-s PREFIX, \-\-savestates=PREFIX
391 [ATA only] Reads/writes \fBsmartd\fP state information from/to files
392 \'PREFIX\'\'MODEL\-SERIAL.ata.state\'. This preserves SMART attributes, drive
393 min and max temperatures (\-W directive), info about last sent warning email
394 (\-m directive), and the time of next check of the self-test REGEXP
395 (\-s directive) across boot cycles.
396
397 .\" BEGIN ENABLE_SAVESTATES
398 If this option is not specified, state information is maintained in files
399 \'/usr/local/var/lib/smartmontools/smartd.MODEL\-SERIAL.ata.state\'.
400 To disable state files, specify this option with an empty string
401 argument: \'-s ""\'.
402 .\" END ENABLE_SAVESTATES
403 MODEL and SERIAL are build from drive identify information, invalid
404 characters are replaced by underline.
405
406 If the PREFIX has the form \'/path/dir/\' (e.g. \'/var/lib/smartd/\'), then
407 files \'MODEL\-SERIAL.ata.state\' are created in directory \'/path/dir\'.
408 If the PREFIX has the form \'/path/name\' (e.g. \'/var/lib/misc/smartd\-\'),
409 then files 'nameMODEL\-SERIAL.ata.state' are created in directory '/path/'.
410 The path must be absolute, except if debug mode is enabled.
411
412 The state information files are read on smartd startup. The files are
413 always (re)written after reading the configuration file, before rereading
414 the configuration file (SIGHUP), before smartd shutdown, and after a check
415 forced by SIGUSR1. After a normal check cycle, a file is only rewritten if
416 an important change (which usually results in a SYSLOG output) occurred.
417 .TP
418 .B \-\-service
419 Cygwin and Windows only: Enables \fBsmartd\fP to run as a Windows service.
420
421 On Cygwin, this option is kept for backward compatibility only.
422 It has the same effect as \'\-n, \-\-no\-fork\', see above.
423
424 On Windows, this option enables the buildin service support.
425 The option must be specified in the service command line as the first
426 argument. It should not be used from console.
427 See NOTES below for details.
428 .TP
429 .B \-V, \-\-version, \-\-license, \-\-copyright
430 Prints version, copyright, license, home page and SVN revision
431 information for your copy of \fBsmartd\fP to STDOUT and then exits.
432 Please include this information if you are reporting bugs or problems.
433
434 .SH EXAMPLES
435
436 .B
437 smartd
438 .fi
439 Runs the daemon in forked mode. This is the normal way to run
440 \fBsmartd\fP.
441 Entries are logged to SYSLOG.
442
443 .B
444 smartd -d -i 30
445 .fi
446 Run in foreground (debug) mode, checking the disk status
447 every 30 seconds.
448
449 .B
450 smartd -q onecheck
451 .fi
452 Registers devices, and checks the status of the devices exactly
453 once. The exit status (the bash
454 .B $?
455 variable) will be zero if all went well, and nonzero if no devices
456 were detected or some other problem was encountered.
457
458 .fi
459 Note that \fBsmartmontools\fP provides a start-up script in
460 \fB/usr/local/etc/rc.d/init.d/smartd\fP which is responsible for starting and
461 stopping the daemon via the normal init interface. Using this script,
462 you can start \fBsmartd\fP by giving the command:
463 .nf
464 .B /usr/local/etc/rc.d/init.d/smartd start
465 .fi
466 and stop it by using the command:
467 .nf
468 .B /usr/local/etc/rc.d/init.d/smartd stop
469 .fi
470
471 .\" DO NOT MODIFY THIS OR THE FOLLOWING TWO LINES. THIS MATERIAL
472 .\" IS AUTOMATICALLY INCLUDED IN THE FILE smartd.conf.5
473 .\" STARTINCLUDE
474
475 .SH CONFIGURATION FILE /usr/local/etc/smartd.conf
476 In the absence of a configuration file, under Linux
477 \fBsmartd\fP
478 will try to open the 20 ATA devices
479 .B /dev/hd[a-t]
480 and the 26 SCSI devices
481 .B /dev/sd[a-z].
482 Under FreeBSD,
483 \fBsmartd\fP
484 will try to open all existing ATA devices (with entries in /dev)
485 .B /dev/ad[0-9]+
486 and all existing SCSI devices (using CAM subsystem).
487 Under NetBSD/OpenBSD,
488 \fBsmartd\fP
489 will try to open all existing ATA devices (with entries in /dev)
490 .B /dev/wd[0-9]+c
491 and all existing SCSI devices
492 .B /dev/sd[0-9]+c.
493 Under Solaris \fBsmartd\fP will try to open all entries \fB"/dev/rdsk/c?t?d?s?"\fP for IDE/ATA and SCSI disk
494 devices, and entries \fB"/dev/rmt/*"\fP for SCSI tape devices.
495 Under Windows \fBsmartd\fP will try to open all entries \fB"/dev/hd[a-j]"\fP ("\\\\.\\PhysicalDrive[0-9]")
496 for IDE/ATA devices on WinNT4/2000/XP, \fB"/dev/hd[a-d]"\fP
497 (bitmask from "\\\\.\\SMARTVSD") for IDE/ATA devices on Win95/98/98SE/ME,
498 and \fB"/dev/scsi[0-9][0-7]"\fP (ASPI adapter 0-9, ID 0-7) for SCSI
499 devices on all versions of Windows.
500 Under Darwin, \fBsmartd\fP will open any ATA block storage device.
501
502 This can be annoying if you have an ATA or SCSI device that hangs or
503 misbehaves when receiving SMART commands. Even if this causes no
504 problems, you may be annoyed by the string of error log messages about
505 block-major devices that can\'t be found, and SCSI devices that can\'t
506 be opened.
507
508 One can avoid this problem, and gain more control over the types of
509 events monitored by
510 \fBsmartd\fP,
511 by using the configuration file
512 .B /usr/local/etc/smartd.conf.
513 This file contains a list of devices to monitor, with one device per
514 line. An example file is included with the
515 .B smartmontools
516 distribution. You will find this sample configuration file in
517 \fB/usr/local/share/doc/smartmontools/\fP. For security, the configuration file
518 should not be writable by anyone but root. The syntax of the file is as
519 follows:
520 .IP \(bu 4
521 There should be one device listed per line, although you may have
522 lines that are entirely comments or white space.
523 .IP \(bu 4
524 Any text following a hash sign \'#\' and up to the end of the line is
525 taken to be a comment, and ignored.
526 .IP \(bu 4
527 Lines may be continued by using a backslash \'\e\' as the last
528 non-whitespace or non-comment item on a line.
529 .IP \(bu 4
530 Note: a line whose first character is a hash sign \'#\' is treated as
531 a white-space blank line, \fBnot\fP as a non-existent line, and will
532 \fBend\fP a continuation line.
533 .PP 0
534 .fi
535 Here is an example configuration file. It\'s for illustrative purposes
536 only; please don\'t copy it onto your system without reading to the end
537 of the
538 .B DIRECTIVES
539 Section below!
540
541 .nf
542 .B ################################################
543 .B # This is an example smartd startup config file
544 .B # /usr/local/etc/smartd.conf for monitoring three
545 .B # ATA disks, three SCSI disks, six ATA disks
546 .B # behind two 3ware controllers, three SATA disks
547 .B # directly connected to the HighPoint Rocket-
548 .B # RAID controller, two SATA disks connected to
549 .B # the HighPoint RocketRAID controller via a pmport
550 .B # device, four SATA disks connected to an Areca
551 .B # RAID controller, and one SATA disk.
552 .B #
553 .nf
554 .B # First ATA disk on two different interfaces. On
555 .B # the second disk, start a long self-test every
556 .B # Sunday between 3 and 4 am.
557 .B #
558 .B \ \ /dev/hda -a -m admin@example.com,root@localhost
559 .B \ \ /dev/hdc -a -I 194 -I 5 -i 12 -s L/../../7/03
560 .B #
561 .nf
562 .B # SCSI disks. Send a TEST warning email to admin on
563 .B # startup.
564 .B #
565 .B \ \ /dev/sda
566 .B \ \ /dev/sdb -m admin@example.com -M test
567 .B #
568 .nf
569 .B # Strange device. It\'s SCSI. Start a scheduled
570 .B # long self test between 5 and 6 am Monday/Thursday
571 .B \ \ /dev/weird -d scsi -s L/../../(1|4)/05
572 .B #
573 .nf
574 .B # An ATA disk may appear as a SCSI device to the
575 .B # OS. If a SCSI to ATA Translation (SAT) layer
576 .B # is between the OS and the device then this can be
577 .B # flagged with the '-d sat' option. This situation
578 .B # may become common with SATA disks in SAS and FC
579 .B # environments.
580 .B \ \ /dev/sda -a -d sat
581 .B #
582 .nf
583 .B # Three disks connected to a MegaRAID controller
584 .B # Start short self-tests daily between 1-2, 2-3, and
585 .B # 3-4 am.
586 .B \ \ /dev/sda -d megaraid,0 -a -s S/../.././01
587 .B \ \ /dev/sda -d megaraid,1 -a -s S/../.././02
588 .B \ \ /dev/sda -d megaraid,2 -a -s S/../.././03
589 .B
590 .B #
591 .nf
592 .B # Four ATA disks on a 3ware 6/7/8000 controller.
593 .B # Start short self-tests daily between midnight and 1am,
594 .B # 1-2, 2-3, and 3-4 am. Starting with the Linux 2.6
595 .B # kernel series, /dev/sdX is deprecated in favor of
596 .B # /dev/tweN. For example replace /dev/sdc by /dev/twe0
597 .B # and /dev/sdd by /dev/twe1.
598 .B \ \ /dev/sdc -d 3ware,0 -a -s S/../.././00
599 .B \ \ /dev/sdc -d 3ware,1 -a -s S/../.././01
600 .B \ \ /dev/sdd -d 3ware,2 -a -s S/../.././02
601 .B \ \ /dev/sdd -d 3ware,3 -a -s S/../.././03
602 .B #
603 .nf
604 .B # Two ATA disks on a 3ware 9000 controller.
605 .B # Start long self-tests Sundays between midnight and
606 .B # 1am and 2-3 am
607 .B \ \ /dev/twa0 -d 3ware,0 -a -s L/../../7/00
608 .B \ \ /dev/twa0 -d 3ware,1 -a -s L/../../7/02
609 .B #
610 .nf
611 .B # Two SATA (not SAS) disks on a 3ware 9750 controller.
612 .B # Start long self-tests Sundays between midnight and
613 .B # 1am and 2-3 am
614 .B \ \ /dev/twl0 -d 3ware,0 -a -s L/../../7/00
615 .B \ \ /dev/twl0 -d 3ware,1 -a -s L/../../7/02
616 .B #
617 .nf
618 .B # Three SATA disks on a HighPoint RocketRAID controller.
619 .B # Start short self-tests daily between 1-2, 2-3, and
620 .B # 3-4 am.
621 .B # under Linux
622 .B \ \ /dev/sde -d hpt,1/1 -a -s S/../.././01
623 .B \ \ /dev/sde -d hpt,1/2 -a -s S/../.././02
624 .B \ \ /dev/sde -d hpt,1/3 -a -s S/../.././03
625 .B # or under FreeBSD
626 .B # /dev/hptrr -d hpt,1/1 -a -s S/../.././01
627 .B # /dev/hptrr -d hpt,1/2 -a -s S/../.././02
628 .B # /dev/hptrr -d hpt,1/3 -a -s S/../.././03
629 .B #
630 .nf
631 .B # Two SATA disks connected to a HighPoint RocketRAID
632 .B # via a pmport device. Start long self-tests Sundays
633 .B # between midnight and 1am and 2-3 am.
634 .B # under Linux
635 .B \ \ /dev/sde -d hpt,1/4/1 -a -s L/../../7/00
636 .B \ \ /dev/sde -d hpt,1/4/2 -a -s L/../../7/02
637 .B # or under FreeBSD
638 .B # /dev/hptrr -d hpt,1/4/1 -a -s L/../../7/00
639 .B # /dev/hptrr -d hpt,1/4/2 -a -s L/../../7/02
640 .B #
641 .nf
642 .B # Three SATA disks connected to an Areca
643 .B # RAID controller. Start long self-tests Sundays
644 .B # between midnight and 3 am.
645 .B \ \ /dev/sg2 -d areca,1 -a -s L/../../7/00
646 .B \ \ /dev/sg2 -d areca,2 -a -s L/../../7/01
647 .B \ \ /dev/sg2 -d areca,3 -a -s L/../../7/02
648 .B #
649 .nf
650 .B # The following line enables monitoring of the
651 .B # ATA Error Log and the Self-Test Error Log.
652 .B # It also tracks changes in both Prefailure
653 .B # and Usage Attributes, apart from Attributes
654 .B # 9, 194, and 231, and shows continued lines:
655 .B #
656 .B \ \ /dev/hdd\ -l\ error\ \e
657 .B \ \ \ \ \ \ \ \ \ \ \ -l\ selftest\ \e
658 .B \ \ \ \ \ \ \ \ \ \ \ -t\ \e\ \ \ \ \ \ # Attributes not tracked:
659 .B \ \ \ \ \ \ \ \ \ \ \ -I\ 194\ \e\ \ # temperature
660 .B \ \ \ \ \ \ \ \ \ \ \ -I\ 231\ \e\ \ # also temperature
661 .B \ \ \ \ \ \ \ \ \ \ \ -I 9\ \ \ \ \ \ # power-on hours
662 .B #
663 .B ################################################
664 .fi
665
666 .PP
667 .SH CONFIGURATION FILE DIRECTIVES
668 .PP
669
670 If a non-comment entry in the configuration file is the text string
671 .B DEVICESCAN
672 in capital letters, then
673 \fBsmartd\fP
674 will ignore any remaining lines in the configuration file, and will
675 scan for devices.
676 .B DEVICESCAN
677 may optionally be followed by Directives that will apply to all
678 devices that are found in the scan. Please see below for additional
679 details.
680
681 .sp 2
682 The following are the Directives that may appear following the device
683 name or
684 .B DEVICESCAN
685 on any line of the
686 .B /usr/local/etc/smartd.conf
687 configuration file. Note that
688 .B these are NOT command-line options for
689 \fBsmartd\fP.
690 The Directives below may appear in any order, following the device
691 name.
692
693 .B For an ATA device,
694 if no Directives appear, then the device will be monitored
695 as if the \'\-a\' Directive (monitor all SMART properties) had been given.
696
697 .B If a SCSI disk is listed,
698 it will be monitored at the maximum implemented level: roughly
699 equivalent to using the \'\-H \-l selftest\' options for an ATA disk.
700 So with the exception of \'\-d\', \'\-m\', \'\-l selftest\', \'\-s\', and
701 \'\-M\', the Directives below are ignored for SCSI disks. For SCSI
702 disks, the \'\-m\' Directive sends a warning email if the SMART status
703 indicates a disk failure or problem, if the SCSI inquiry about disk
704 status fails, or if new errors appear in the self-test log.
705
706 .B If a 3ware controller is used
707 then the corresponding SCSI (/dev/sd?) or character device (/dev/twe?,
708 /dev/twa? or /dev/twl?) must be listed, along with the \'\-d 3ware,N\'
709 Directive (see below). The individual ATA disks hosted by the 3ware
710 controller appear to \fBsmartd\fP as normal ATA devices. Hence all
711 the ATA directives can be used for these disks (but see note below).
712
713 .B If an Areca controller is used
714 then the corresponding SCSI generic device (/dev/sg?) must be listed,
715 along with the \'\-d areca,N\' Directive (see below). The individual
716 SATA disks hosted by the Areca controller appear to \fBsmartd\fP as
717 normal ATA devices. Hence all the ATA directives can be used for
718 these disks. Areca firmware version 1.46 or later which supports
719 smartmontools must be used; Please see the \fBsmartctl\fP(8) man page
720 for further details.
721 .TP
722 .B \-d TYPE
723 Specifies the type of the device.
724 The valid arguments to this directive are:
725
726 .I auto
727 - attempt to guess the device type from the device name or from
728 controller type info provided by the operating system or from
729 a matching USB ID entry in the drive database.
730 This is the default.
731
732 .I ata
733 \- the device type is ATA. This prevents
734 \fBsmartd\fP
735 from issuing SCSI commands to an ATA device.
736
737 .I scsi
738 \- the device type is SCSI. This prevents
739 \fBsmartd\fP
740 from issuing ATA commands to a SCSI device.
741
742 .I sat
743 \- the device type is SCSI to ATA Translation (SAT).
744 This is for ATA disks that have a SCSI to ATA Translation (SAT) Layer
745 (SATL) between the disk and the operating system.
746 SAT defines two ATA PASS THROUGH SCSI commands, one 12 bytes long and
747 the other 16 bytes long. The default is the 16 byte variant which can be
748 overridden with either \'\-d sat,12\' or \'\-d sat,16\'.
749
750 .I usbcypress
751 \- this device type is for ATA disks that are behind a Cypress USB to PATA
752 bridge. This will use the ATACB proprietary scsi pass through command.
753 The default SCSI operation code is 0x24, but although it can be overridden
754 with \'\-d usbcypress,0xN\', where N is the scsi operation code,
755 you're running the risk of damage to the device or filesystems on it.
756
757 .I usbjmicron
758 - this device type is for SATA disks that are behind a JMicron USB to
759 PATA/SATA bridge. The 48-bit ATA commands (required e.g. for \'\-l xerror\',
760 see below) do not work with all of these bridges and are therefore disabled by
761 default. These commands can be enabled by \'\-d usbjmicron,x\'.
762 If two disks are connected to a bridge with two ports, an error message is printed
763 if no PORT is specified.
764 The port can be specified by \'\-d usbjmicron[,x],PORT\' where PORT is 0
765 (master) or 1 (slave). This is not necessary if the device uses a port
766 multiplier to connect multiple disks to one port. The disks appear under
767 separate /dev/ice names then.
768 CAUTION: Specifying \',x\' for a device which does not support it results
769 in I/O errors and may disconnect the drive. The same applies if the specified
770 PORT does not exist or is not connected to a disk.
771
772 .I usbsunplus
773 \- this device type is for SATA disks that are behind a SunplusIT USB to SATA
774 bridge.
775
776 .I marvell
777 \- [Linux only] interact with SATA disks behind Marvell chip-set
778 controllers (using the Marvell rather than libata driver).
779
780 .I megaraid,N
781 \- [Linux only] the device consists of one or more SCSI/SAS disks connected
782 to a MegaRAID controller. The non-negative integer N (in the range of 0 to
783 127 inclusive) denotes which disk on the controller is monitored.
784 This interface will also work for Dell PERC controllers.
785 In log files and email messages this disk will be identified as
786 megaraid_disk_XXX with XXX in the range from 000 to 127 inclusive.
787 Please see the \fBsmartctl\fP(8) man page for further details.
788
789 .I 3ware,N
790 \- [FreeBSD and Linux only] the device consists of one or more ATA disks
791 connected to a 3ware RAID controller. The non-negative integer N
792 (in the range from 0 to 127 inclusive) denotes which disk on the controller
793 is monitored.
794 In log files and email messages this disk will be identified as 3ware_disk_XXX
795 with XXX in the range from 000 to 127 inclusive.
796
797 Note that while you may use \fBany\fP of the 3ware SCSI logical devices /dev/tw*
798 to address \fBany\fP of the physical disks (3ware ports), error and log
799 messages will make the most sense if you always list the 3ware SCSI
800 logical device corresponding to the particular physical disks.
801 Please see the \fBsmartctl\fP(8) man page for further details.
802
803 .I areca,N
804 \- [Linux only] the device consists of one or more SATA disks connected to an
805 Areca SATA RAID controller. The positive integer N (in the range from 1 to
806 24 inclusive) denotes which disk on the controller is monitored.
807 In log files and email messages this disk will be identifed as
808 areca_disk_XX with XX in the range from 01 to 24 inclusive.
809 Please see the \fBsmartctl\fP(8) man page for further details.
810
811 .I cciss,N
812 \- [FreeBSD and Linux only] the device consists of one or more SCSI/SAS disks
813 connected to a cciss RAID controller. The non-negative integer N (in the range
814 from 0 to 15 inclusive) denotes which disk on the controller is monitored.
815 In log files and email messages this disk will be identified as cciss_disk_XX
816 with XX in the range from 00 to 15 inclusive.
817 Please see the \fBsmartctl\fP(8) man page for further details.
818
819 .I hpt,L/M/N
820 \- [FreeBSD and Linux only] the device consists of one or more ATA disks
821 connected to a HighPoint RocketRAID controller. The integer L is the
822 controller id, the integer M is the channel number, and the integer N
823 is the PMPort number if it is available. The allowed values of L are
824 from 1 to 4 inclusive, M are from 1 to 8 inclusive and N from 1 to 4
825 if PMPort available. And also these values are limited by the model
826 of the HighPoint RocketRAID controller.
827 In log files and email messages this disk will be identified as
828 hpt_X/X/X and X/X/X is the same as L/M/N, note if no N indicated, N set
829 to the default value 1.
830 Please see the \fBsmartctl\fP(8) man page for further details.
831
832 .I removable
833 \- the device or its media is removable. This indicates to
834 \fBsmartd\fP
835 that it should continue (instead of exiting, which is the default
836 behavior) if the device does not appear to be present when
837 \fBsmartd\fP is started. This Directive may be used in conjunction
838 with the other \'\-d\' Directives.
839 .TP
840 .B \-n POWERMODE[,N][,q]
841 [ATA only] This \'nocheck\' Directive is used to prevent a disk from
842 being spun-up when it is periodically polled by \fBsmartd\fP.
843
844 ATA disks have five different power states. In order of increasing
845 power consumption they are: \'OFF\', \'SLEEP\', \'STANDBY\', \'IDLE\',
846 and \'ACTIVE\'. Typically in the OFF, SLEEP, and STANDBY modes the
847 disk\'s platters are not spinning. But usually, in response to SMART
848 commands issued by \fBsmartd\fP, the disk platters are spun up. So if
849 this option is not used, then a disk which is in a low\-power mode may
850 be spun up and put into a higher\-power mode when it is periodically
851 polled by \fBsmartd\fP.
852
853 Note that if the disk is in SLEEP mode when \fBsmartd\fP is started,
854 then it won't respond to \fBsmartd\fP commands, and so the disk won't
855 be registered as a device for \fBsmartd\fP to monitor. If a disk is in
856 any other low\-power mode, then the commands issued by \fBsmartd\fP to
857 register the disk will probably cause it to spin\-up.
858
859 The \'\fB\-n\fP\' (nocheck) Directive specifies if \fBsmartd\fP\'s
860 periodic checks should still be carried out when the device is in a
861 low\-power mode. It may be used to prevent a disk from being spun\-up
862 by periodic \fBsmartd\fP polling. The allowed values of POWERMODE
863 are:
864
865 .I never
866 \- \fBsmartd\fP will poll (check) the device regardless of its power
867 mode. This may cause a disk which is spun\-down to be spun\-up when
868 \fBsmartd\fP checks it. This is the default behavior if the '\-n'
869 Directive is not given.
870
871 .I sleep
872 \- check the device unless it is in SLEEP mode.
873
874 .I standby
875 \- check the device unless it is in SLEEP or STANDBY mode. In
876 these modes most disks are not spinning, so if you want to prevent
877 a laptop disk from spinning up each time that \fBsmartd\fP polls,
878 this is probably what you want.
879
880 .I idle
881 \- check the device unless it is in SLEEP, STANDBY or IDLE mode.
882 In the IDLE state, most disks are still spinning, so this is probably
883 not what you want.
884
885 Maximum number of skipped checks (in a row) can be specified by
886 appending positive number \',N\' to POWERMODE (like \'\-n standby,15\').
887 After N checks are skipped in a row, powermode is ignored and the
888 check is performed anyway.
889
890 When a periodic test is skipped, \fBsmartd\fP normally writes an
891 informal log message. The message can be suppressed by appending
892 the option \',q\' to POWERMODE (like \'\-n standby,q\').
893 This prevents a laptop disk from spinning up due to this message.
894
895 Both \',N\' and \',q\' can be specified together.
896 .TP
897 .B \-T TYPE
898 Specifies how tolerant
899 \fBsmartd\fP
900 should be of SMART command failures. The valid arguments to this
901 Directive are:
902
903 .I normal
904 \- do not try to monitor the disk if a mandatory SMART command fails, but
905 continue if an optional SMART command fails. This is the default.
906
907 .I permissive
908 \- try to monitor the disk even if it appears to lack SMART
909 capabilities. This may be required for some old disks (prior to
910 ATA\-3 revision 4) that implemented SMART before the SMART standards
911 were incorporated into the ATA/ATAPI Specifications. This may also be
912 needed for some Maxtor disks which fail to comply with the ATA
913 Specifications and don't properly indicate support for error\- or
914 self\-test logging.
915
916 [Please see the \fBsmartctl \-T\fP command-line option.]
917 .TP
918 .B \-o VALUE
919 [ATA only] Enables or disables SMART Automatic Offline Testing when
920 \fBsmartd\fP
921 starts up and has no further effect. The valid arguments to this
922 Directive are \fIon\fP and \fIoff\fP.
923
924 The delay between tests is vendor-specific, but is typically four
925 hours.
926
927 Note that SMART Automatic Offline Testing is \fBnot\fP part of the ATA
928 Specification. Please see the
929 .B smartctl \-o
930 command-line option documentation for further information about this
931 feature.
932 .TP
933 .B \-S VALUE
934 Enables or disables Attribute Autosave when \fBsmartd\fP
935 starts up and has no further effect. The valid arguments to this
936 Directive are \fIon\fP and \fIoff\fP. Also affects SCSI devices.
937 [Please see the \fBsmartctl \-S\fP command-line option.]
938 .TP
939 .B \-H
940 [ATA only] Check the SMART health status of the disk. If any Prefailure
941 Attributes are less than or equal to their threshold values, then disk
942 failure is predicted in less than 24 hours, and a message at loglevel
943 .B \'LOG_CRIT\'
944 will be logged to syslog. [Please see the
945 .B smartctl \-H
946 command-line option.]
947 .TP
948 .B \-l TYPE
949 Reports increases in the number of errors in one of three SMART logs. The
950 valid arguments to this Directive are:
951
952 .I error
953 \- [ATA only] report if the number of ATA errors reported in the Summary SMART
954 error log has increased since the last check.
955
956 .I xerror
957 \- [ATA only] [NEW EXPERIMENTAL SMARTD FEATURE] report if the number of ATA
958 errors reported in the Extended Comprehensive SMART error log has increased
959 since the last check.
960
961 If both \'\-l error\' and \'\-l xerror\' are specified, smartd checks
962 the maximum of both values.
963
964 [Please see the \fBsmartctl \-l xerror\fP command-line option.]
965
966 .I selftest
967 \- report if the number of failed tests reported in the SMART
968 Self-Test Log has increased since the last check, or if the timestamp
969 associated with the most recent failed test has increased. Note that
970 such errors will \fBonly\fP be logged if you run self-tests on the
971 disk (and it fails a test!). Self-Tests can be run automatically by
972 \fBsmartd\fP: please see the \fB\'\-s\'\fP Directive below.
973 Self-Tests can also be run manually by using the \fB\'\-t\ short\'\fP
974 and \fB\'\-t\ long\'\fP options of \fBsmartctl\fP and the results of
975 the testing can be observed using the \fBsmartctl \'\-l\ selftest\'\fP
976 command-line option.
977 [Please see the \fBsmartctl \-l\fP and \fB\-t\fP command-line
978 options.]
979
980 [ATA only] Failed self-tests outdated by a newer successful extended
981 self\-test are ignored.
982
983 .I scterc,READTIME,WRITETIME
984 \- [ATA only] [NEW EXPERIMENTAL SMARTD FEATURE] sets the SCT Error
985 Recovery Control settings to the specified values (deciseconds)
986 when \fBsmartd\fP starts up and has no further effect.
987 Values of 0 disable the feature, other values less than 65 are probably
988 not supported. For RAID configurations, this is typically set to
989 70,70 deciseconds.
990 [Please see the \fBsmartctl \-l scterc\fP command-line option.]
991
992 .TP
993 .B \-s REGEXP
994 Run Self-Tests or Offline Immediate Tests, at scheduled times. A
995 Self- or Offline Immediate Test will be run at the end of periodic
996 device polling, if all 12 characters of the string \fBT/MM/DD/d/HH\fP
997 match the extended regular expression \fBREGEXP\fP. Here:
998 .RS 7
999 .IP \fBT\fP 4
1000 is the type of the test. The values that \fBsmartd\fP will try to
1001 match (in turn) are: \'L\' for a \fBL\fPong Self-Test, \'S\' for a
1002 \fBS\fPhort Self-Test, \'C\' for a \fBC\fPonveyance Self-Test (ATA
1003 only), and \'O\' for an \fBO\fPffline Immediate Test (ATA only). As
1004 soon as a match is found, the test will be started and no additional
1005 matches will be sought for that device and that polling cycle.
1006
1007 To run scheduled Selective Self-Tests, use \'n\' for \fBn\fPext span,
1008 \'r\' to \fBr\fPedo last span, or \'c\' to \fBc\fPontinue with next span
1009 or redo last span based on status of last test.
1010 The LBA range is based on the first span from the last test.
1011 See the \fBsmartctl \-t select,[next|redo|cont]\fP options for
1012 further info.
1013
1014 [NEW EXPERIMENTAL SMARTD FEATURE] Some disks (e.g. WD) do not preserve
1015 the selective self test log accross power cycles. If state persistence
1016 (\'\-s\' option) is enabled, the last test span is preserved by smartd
1017 and used if (and only if) the selective self test log is empty.
1018
1019 .IP \fBMM\fP 4
1020 is the month of the year, expressed with two decimal digits. The
1021 range is from 01 (January) to 12 (December) inclusive. Do \fBnot\fP
1022 use a single decimal digit or the match will always fail!
1023 .IP \fBDD\fP 4
1024 is the day of the month, expressed with two decimal digits. The
1025 range is from 01 to 31 inclusive. Do \fBnot\fP
1026 use a single decimal digit or the match will always fail!
1027 .IP \fBd\fP 4
1028 is the day of the week, expressed with one decimal digit. The
1029 range is from 1 (Monday) to 7 (Sunday) inclusive.
1030 .IP \fBHH\fP 4
1031 is the hour of the day, written with two decimal digits, and given in
1032 hours after midnight. The range is 00 (midnight to just before 1am)
1033 to 23 (11pm to just before midnight) inclusive. Do \fBnot\fP use a
1034 single decimal digit or the match will always fail!
1035 .RE
1036 .\" The following two lines are a workaround for a man2html bug. Please leave them.
1037 .\" They define a non-existent option; useful because man2html can't correctly reset the margins.
1038 .TP
1039 .B \&
1040 Some examples follow. In reading these, keep in mind that in extended
1041 regular expressions a dot \fB\'.\'\fP matches any single character, and
1042 a parenthetical expression such as \fB\'(A|B|C)\'\fP denotes any one of the three possibilities \fBA\fP,
1043 \fBB\fP, or \fBC\fP.
1044
1045 To schedule a short Self-Test between 2-3am every morning, use:
1046 .nf
1047 \fB \-s S/../.././02\fP
1048 .fi
1049 To schedule a long Self-Test between 4-5am every Sunday morning, use:
1050 .nf
1051 \fB \-s L/../../7/04\fP
1052 .fi
1053 To schedule a long Self-Test between 10-11pm on the first and
1054 fifteenth day of each month, use:
1055 .nf
1056 \fB \-s L/../(01|15)/./22\fP
1057 .fi
1058 To schedule an Offline Immediate test after every midnight, 6am,
1059 noon,and 6pm, plus a Short Self-Test daily at 1-2am and a Long
1060 Self-Test every Saturday at 3-4am, use:
1061 .nf
1062 \fB \-s (O/../.././(00|06|12|18)|S/../.././01|L/../../6/03)\fP
1063 .fi
1064 If Long Self-Tests of a large disks take longer than the system uptime,
1065 a full disk test can be performed by several Selective Self-Tests.
1066 To setup a full test of a 1TB disk within 20 days (one 50GB span
1067 each day), run this command once:
1068 .nf
1069 smartctl -t select,0-99999999 /dev/sda
1070 .fi
1071 To run the next test spans on Monday-Friday between 12-13am, run smartd
1072 with this directive:
1073 .nf
1074 \fB \-s n/../../[1-5]/12\fP
1075 .fi
1076
1077
1078 Scheduled tests are run immediately following the regularly-scheduled
1079 device polling, if the current local date, time, and test type, match
1080 \fBREGEXP\fP. By default the regularly-scheduled device polling
1081 occurs every thirty minutes after starting \fBsmartd\fP. Take caution
1082 if you use the \'\-i\' option to make this polling interval more than
1083 sixty minutes: the poll times may fail to coincide with any of the
1084 testing times that you have specified with \fBREGEXP\fP. In this case
1085 the test will be run following the next device polling.
1086
1087 Before running an offline or self-test, \fBsmartd\fP checks to be sure
1088 that a self-test is not already running. If a self-test \fBis\fP
1089 already running, then this running self test will \fBnot\fP be
1090 interrupted to begin another test.
1091
1092 \fBsmartd\fP will not attempt to run \fBany\fP type of test if another
1093 test was already started or run in the same hour.
1094
1095 To avoid performance problems during system boot, \fBsmartd\fP will
1096 not attempt to run any scheduled tests following the very first
1097 device polling (unless \'\-q onecheck\' is specified).
1098
1099 Each time a test is run, \fBsmartd\fP will log an entry to SYSLOG.
1100 You can use these or the '-q showtests' command-line option to verify
1101 that you constructed \fBREGEXP\fP correctly. The matching order
1102 (\fBL\fP before \fBS\fP before \fBC\fP before \fBO\fP) ensures that
1103 if multiple test types are all scheduled for the same hour, the
1104 longer test type has precedence. This is usually the desired behavior.
1105
1106 If the scheduled tests are used in conjunction with state persistence
1107 (\'\-s\' option), smartd will also try to match the hours since last
1108 shutdown (or 90 days at most). If any test would have been started
1109 during downtime, the longest (see above) of these tests is run after
1110 second device polling.
1111
1112 If the \'\-n\' directive is used and any test would have been started
1113 during disk standby time, the longest of these tests is run when the
1114 disk is active again.
1115
1116 Unix users: please beware that the rules for extended regular
1117 expressions [regex(7)] are \fBnot\fP the same as the rules for
1118 file\-name pattern matching by the shell [glob(7)]. \fBsmartd\fP will
1119 issue harmless informational warning messages if it detects characters
1120 in \fBREGEXP\fP that appear to indicate that you have made this
1121 mistake.
1122 .TP
1123 .B \-m ADD
1124 Send a warning email to the email address \fBADD\fP if the \'\-H\',
1125 \'\-l\', \'\-f\', \'\-C\', or \'\-O\' Directives detect a failure or a
1126 new error, or if a SMART command to the disk fails. This Directive
1127 only works in conjunction with these other Directives (or with the
1128 equivalent default \'\-a\' Directive).
1129
1130 To prevent your email in-box from getting filled up with warning
1131 messages, by default only a single warning will be sent for each of
1132 the enabled alert types, \'\-H\', \'\-l\', \'\-f\', \'\-C\', or
1133 \'\-O\' even if more than one failure or error is detected or if the
1134 failure or error persists. [This behavior can be modified; see the
1135 \'\-M\' Directive below.]
1136
1137 To send email to more than one user, please use the following "comma
1138 separated" form for the address: \fBuser1@add1,user2@add2,...,userN@addN\fP
1139 (with no spaces).
1140
1141 To test that email is being sent correctly, use the \'\-M test\'
1142 Directive described below to send one test email message on
1143 \fBsmartd\fP
1144 startup.
1145
1146 By default, email is sent using the system
1147 .B mail
1148 command. In order that
1149 \fBsmartd\fP
1150 find the mail command (normally /bin/mail) an executable named
1151 .B \'mail\'
1152 must be in the path of the shell or environment from which
1153 \fBsmartd\fP
1154 was started. If you wish to specify an explicit path to the mail
1155 executable (for example /usr/local/bin/mail) or a custom script to
1156 run, please use the \'\-M exec\' Directive below.
1157
1158 Note that by default under Solaris, in the previous paragraph,
1159 \'\fBmailx\fP\' and \'\fB/bin/mailx\fP\' are used, since Solaris
1160 \'/bin/mail\' does not accept a \'\-s\' (Subject) command-line
1161 argument.
1162
1163 On Windows, the \'\fBBlat\fP\' mailer
1164 (\fBhttp://blat.sourceforge.net/\fP) is used by default.
1165 This mailer uses a different command line syntax, see
1166 \'\-M exec\' below.
1167
1168 Note also that there is a special argument
1169 .B <nomailer>
1170 which can be given to the \'\-m\' Directive in conjunction with the \'\-M
1171 exec\' Directive. Please see below for an explanation of its effect.
1172
1173 If the mailer or the shell running it produces any STDERR/STDOUT
1174 output, then a snippet of that output will be copied to SYSLOG. The
1175 remainder of the output is discarded. If problems are encountered in
1176 sending mail, this should help you to understand and fix them. If
1177 you have mail problems, we recommend running \fBsmartd\fP in debug
1178 mode with the \'-d\' flag, using the \'-M test\' Directive described
1179 below.
1180
1181 The following extension is available on Windows:
1182 By specifying \'\fBmsgbox\fP\' as a mail address, a warning
1183 "email" is displayed as a message box on the screen.
1184 Using both \'\fBmsgbox\fP\' and regular mail addresses is possible,
1185 if \'\fBmsgbox\fP\' is the first word in the comma separated list.
1186 With \'\fBsysmsgbox\fP\', a system modal (always on top) message box
1187 is used. If running as a service, a service notification message box
1188 (always shown on current visible desktop) is used.
1189 .TP
1190 .B \-M TYPE
1191 These Directives modify the behavior of the
1192 \fBsmartd\fP
1193 email warnings enabled with the \'\-m\' email Directive described above.
1194 These \'\-M\' Directives only work in conjunction with the \'\-m\'
1195 Directive and can not be used without it.
1196
1197 Multiple \-M Directives may be given. If more than one of the
1198 following three \-M Directives are given (example: \-M once \-M daily)
1199 then the final one (in the example, \-M daily) is used.
1200
1201 The valid arguments to the \-M Directive are (one of the following
1202 three):
1203
1204 .I once
1205 \- send only one warning email for each type of disk problem detected. This
1206 is the default unless state persistence (\'\-s\' option) is enabled.
1207
1208 .I daily
1209 \- send additional warning reminder emails, once per day, for each type
1210 of disk problem detected. This is the default if state persistence
1211 (\'\-s\' option) is enabled.
1212
1213 .I diminishing
1214 \- send additional warning reminder emails, after a one-day interval,
1215 then a two-day interval, then a four-day interval, and so on for each
1216 type of disk problem detected. Each interval is twice as long as the
1217 previous interval.
1218
1219 In addition, one may add zero or more of the following Directives:
1220
1221 .I test
1222 \- send a single test email
1223 immediately upon
1224 \fBsmartd\fP
1225 startup. This allows one to verify that email is delivered correctly.
1226 Note that if this Directive is used,
1227 \fBsmartd\fP
1228 will also send the normal email warnings that were enabled with the \'\-m\' Directive,
1229 in addition to the single test email!
1230
1231 .I exec PATH
1232 \- run the executable PATH instead of the default mail command, when
1233 \fBsmartd\fP
1234 needs to send email. PATH must point to an executable binary file or
1235 script.
1236
1237 By setting PATH to point to a customized script, you can make
1238 \fBsmartd\fP perform useful tricks when a disk problem is detected
1239 (beeping the console, shutting down the machine, broadcasting warnings
1240 to all logged-in users, etc.) But please be careful. \fBsmartd\fP
1241 will \fBblock\fP until the executable PATH returns, so if your
1242 executable hangs, then \fBsmartd\fP will also hang. Some sample
1243 scripts are included in
1244 /usr/local/share/doc/smartmontools/examplescripts/.
1245
1246 The return status of the executable is recorded by \fBsmartd\fP in
1247 SYSLOG. The executable is not expected to write to STDOUT or
1248 STDERR. If it does, then this is interpreted as indicating that
1249 something is going wrong with your executable, and a fragment of this
1250 output is logged to SYSLOG to help you to understand the problem.
1251 Normally, if you wish to leave some record behind, the executable
1252 should send mail or write to a file or device.
1253
1254 Before running the executable, \fBsmartd\fP sets a number of
1255 environment variables. These environment variables may be used to
1256 control the executable\'s behavior. The environment variables
1257 exported by \fBsmartd\fP are:
1258 .RS 7
1259 .IP \fBSMARTD_MAILER\fP 4
1260 is set to the argument of \-M exec, if present or else to \'mail\'
1261 (examples: /bin/mail, mail).
1262 .IP \fBSMARTD_DEVICE\fP 4
1263 is set to the device path (examples: /dev/hda, /dev/sdb).
1264 .IP \fBSMARTD_DEVICETYPE\fP 4
1265 is set to the device type specified by \'-d\' directive or
1266 \'auto\' if none.
1267 .IP \fBSMARTD_DEVICESTRING\fP 4
1268 is set to the device description. For SMARTD_DEVICETYPE of ata or
1269 scsi, this is the same as SMARTD_DEVICE. For 3ware RAID controllers,
1270 the form used is \'/dev/sdc [3ware_disk_01]\'. For HighPoint
1271 RocketRAID controller, the form is \'/dev/sdd [hpt_1/1/1]\' under Linux
1272 or \'/dev/hptrr [hpt_1/1/1]\' under FreeBSD. For Areca controllers, the
1273 form is \'/dev/sg2 [areca_disk_09]\'. In these cases the device string
1274 contains a space and is NOT quoted. So to use $SMARTD_DEVICESTRING in a
1275 bash script you should probably enclose it in double quotes.
1276 .IP \fBSMARTD_FAILTYPE\fP 4
1277 gives the reason for the warning or message email. The possible values that
1278 it takes and their meanings are:
1279 .nf
1280 .fi
1281 \fIEmailTest\fP: this is an email test message.
1282 .nf
1283 .fi
1284 \fIHealth\fP: the SMART health status indicates imminent failure.
1285 .nf
1286 .fi
1287 \fIUsage\fP: a usage Attribute has failed.
1288 .nf
1289 .fi
1290 \fISelfTest\fP: the number of self-test failures has increased.
1291 .nf
1292 .fi
1293 \fIErrorCount\fP: the number of errors in the ATA error log has increased.
1294 .nf
1295 .fi
1296 \fICurrentPendingSector\fP: one of more disk sectors could not be
1297 read and are marked to be reallocated (replaced with spare sectors).
1298 .nf
1299 .fi
1300 \fIOfflineUncorrectableSector\fP: during off\-line testing, or self\-testing,
1301 one or more disk sectors could not be read.
1302 .nf
1303 .fi
1304 \fITemperature\fP: Temperature reached critical limit (see \-W directive).
1305 .nf
1306 .fi
1307 \fIFailedHealthCheck\fP: the SMART health status command failed.
1308 .nf
1309 .fi
1310 \fIFailedReadSmartData\fP: the command to read SMART Attribute data failed.
1311 .nf
1312 .fi
1313 \fIFailedReadSmartErrorLog\fP: the command to read the SMART error log failed.
1314 .nf
1315 .fi
1316 \fIFailedReadSmartSelfTestLog\fP: the command to read the SMART self-test log failed.
1317 .nf
1318 .fi
1319 \fIFailedOpenDevice\fP: the open() command to the device failed.
1320 .IP \fBSMARTD_ADDRESS\fP 4
1321 is determined by the address argument ADD of the \'\-m\' Directive.
1322 If ADD is \fB<nomailer>\fP, then \fBSMARTD_ADDRESS\fP is not set.
1323 Otherwise, it is set to the comma-separated-list of email addresses
1324 given by the argument ADD, with the commas replaced by spaces
1325 (example:admin@example.com root). If more than one email address is
1326 given, then this string will contain space characters and is NOT
1327 quoted, so to use it in a bash script you may want to enclose it in
1328 double quotes.
1329 .IP \fBSMARTD_MESSAGE\fP 4
1330 is set to the one sentence summary warning email message string from
1331 \fBsmartd\fP.
1332 This message string contains space characters and is NOT quoted. So to
1333 use $SMARTD_MESSAGE in a bash script you should probably enclose it in
1334 double quotes.
1335 .IP \fBSMARTD_FULLMESSAGE\fP 4
1336 is set to the contents of the entire email warning message string from
1337 \fBsmartd\fP.
1338 This message string contains space and return characters and is NOT quoted. So to
1339 use $SMARTD_FULLMESSAGE in a bash script you should probably enclose it in
1340 double quotes.
1341 .IP \fBSMARTD_TFIRST\fP 4
1342 is a text string giving the time and date at which the first problem
1343 of this type was reported. This text string contains space characters
1344 and no newlines, and is NOT quoted. For example:
1345 .nf
1346 .fi
1347 Sun Feb 9 14:58:19 2003 CST
1348 .IP \fBSMARTD_TFIRSTEPOCH\fP 4
1349 is an integer, which is the unix epoch (number of seconds since Jan 1,
1350 1970) for \fBSMARTD_TFIRST\fP.
1351 .RE
1352 .\" The following two lines are a workaround for a man2html bug. Please leave them.
1353 .\" They define a non-existent option; useful because man2html can't correctly reset the margins.
1354 .TP
1355 .B \&
1356 The shell which is used to run PATH is system-dependent. For vanilla
1357 Linux/glibc it\'s bash. For other systems, the man page for
1358 \fBpopen\fP(3) should say what shell is used.
1359
1360 If the \'\-m ADD\' Directive is given with a normal address argument,
1361 then the executable pointed to by PATH will be run in a shell with
1362 STDIN receiving the body of the email message, and with the same
1363 command-line arguments:
1364 .nf
1365 -s "$SMARTD_SUBJECT" $SMARTD_ADDRESS
1366 .fi
1367 that would normally be provided to \'mail\'. Examples include:
1368 .nf
1369 .B -m user@home -M exec /bin/mail
1370 .B -m admin@work -M exec /usr/local/bin/mailto
1371 .B -m root -M exec /Example_1/bash/script/below
1372 .fi
1373
1374 Note that on Windows, the syntax of the \'\fBBlat\fP\' mailer is
1375 used:
1376 .nf
1377 - -q -subject "$SMARTD_SUBJECT" -to "$SMARTD_ADDRESS"
1378 .fi
1379
1380 If the \'\-m ADD\' Directive is given with the special address argument
1381 .B <nomailer>
1382 then the executable pointed to by PATH is run in a shell with
1383 .B no
1384 STDIN and
1385 .B no
1386 command-line arguments, for example:
1387 .nf
1388 .B -m <nomailer> -M exec /Example_2/bash/script/below
1389 .fi
1390 If the executable produces any STDERR/STDOUT output, then \fBsmartd\fP
1391 assumes that something is going wrong, and a snippet of that output
1392 will be copied to SYSLOG. The remainder of the output is then
1393 discarded.
1394
1395 Some EXAMPLES of scripts that can be used with the \'\-M exec\'
1396 Directive are given below. Some sample scripts are also included in
1397 /usr/local/share/doc/smartmontools/examplescripts/.
1398 .TP
1399 .B \-f
1400 [ATA only] Check for \'failure\' of any Usage Attributes. If these
1401 Attributes are less than or equal to the threshold, it does NOT indicate
1402 imminent disk failure. It "indicates an advisory condition where the usage
1403 or age of the device has exceeded its intended design life period."
1404 [Please see the \fBsmartctl \-A\fP command-line option.]
1405 .TP
1406 .B \-p
1407 [ATA only] Report anytime that a Prefail Attribute has changed
1408 its value since the last check, 30 minutes ago. [Please see the
1409 .B smartctl \-A
1410 command-line option.]
1411 .TP
1412 .B \-u
1413 [ATA only] Report anytime that a Usage Attribute has changed its value
1414 since the last check, 30 minutes ago. [Please see the
1415 .B smartctl \-A
1416 command-line option.]
1417 .TP
1418 .B \-t
1419 [ATA only] Equivalent to turning on the two previous flags \'\-p\' and \'\-u\'.
1420 Tracks changes in \fIall\fP device Attributes (both Prefailure and
1421 Usage). [Please see the \fBsmartctl\fP \-A command-line option.]
1422 .TP
1423 .B \-i ID
1424 [ATA only] Ignore device Attribute number \fBID\fP when checking for failure
1425 of Usage Attributes. \fBID\fP must be a decimal integer in the range
1426 from 1 to 255. This Directive modifies the behavior of the \'\-f\'
1427 Directive and has no effect without it.
1428
1429 This is useful, for example, if you have a very old disk and don\'t
1430 want to keep getting messages about the hours-on-lifetime Attribute
1431 (usually Attribute 9) failing. This Directive may appear multiple
1432 times for a single device, if you want to ignore multiple Attributes.
1433 .TP
1434 .B \-I ID
1435 [ATA only] Ignore device Attribute \fBID\fP when tracking changes in the
1436 Attribute values. \fBID\fP must be a decimal integer in the range
1437 from 1 to 255. This Directive modifies the behavior of the \'\-p\',
1438 \'\-u\', and \'\-t\' tracking Directives and has no effect without one
1439 of them.
1440
1441 This is useful, for example, if one of the device Attributes is the disk
1442 temperature (usually Attribute 194 or 231). It\'s annoying to get reports
1443 each time the temperature changes. This Directive may appear multiple
1444 times for a single device, if you want to ignore multiple Attributes.
1445 .TP
1446 .B \-r ID[!]
1447 [ATA only] When tracking, report the \fIRaw\fP value of Attribute \fBID\fP
1448 along with its (normally reported) \fINormalized\fP value. \fBID\fP must
1449 be a decimal integer in the range from 1 to 255. This Directive modifies
1450 the behavior of the \'\-p\', \'\-u\', and \'\-t\' tracking Directives
1451 and has no effect without one of them. This Directive may be given
1452 multiple times.
1453
1454 A common use of this Directive is to track the device Temperature
1455 (often ID=194 or 231).
1456
1457 If the optional flag \'!\' is appended, a change of the Normalized
1458 value is considered critical. The report will be logged as LOG_CRIT
1459 and a warning email will be sent if \'-m\' is specified.
1460 .TP
1461 .B \-R ID[!]
1462 [ATA only] When tracking, report whenever the \fIRaw\fP value of Attribute
1463 \fBID\fP changes. (Normally \fBsmartd\fP only tracks/reports changes
1464 of the \fINormalized\fP Attribute values.) \fBID\fP must be a decimal
1465 integer in the range from 1 to 255. This Directive modifies the
1466 behavior of the \'\-p\', \'\-u\', and \'\-t\' tracking Directives and
1467 has no effect without one of them. This Directive may be given
1468 multiple times.
1469
1470 If this Directive is given, it automatically implies the \'\-r\'
1471 Directive for the same Attribute, so that the Raw value of the
1472 Attribute is reported.
1473
1474 A common use of this Directive is to track the device Temperature
1475 (often ID=194 or 231). It is also useful for understanding how
1476 different types of system behavior affects the values of certain
1477 Attributes.
1478
1479 If the optional flag \'!\' is appended, a change of the Raw
1480 value is considered critical. The report will be logged as
1481 LOG_CRIT and a warning email will be sent if \'-m\' is specified.
1482 An example is \'-R 5!\' to warn when new sectors are reallocated.
1483 .TP
1484 .B \-C ID[+]
1485 [ATA only] Report if the current number of pending sectors is
1486 non-zero. Here \fBID\fP is the id number of the Attribute whose raw
1487 value is the Current Pending Sector count. The allowed range of
1488 \fBID\fP is 0 to 255 inclusive. To turn off this reporting, use
1489 ID\ =\ 0. If the \fB\-C ID\fP option is not given, then it defaults to
1490 \fB\-C 197\fP (since Attribute 197 is generally used to monitor
1491 pending sectors). If the name of this Attribute is changed by a
1492 \'\-v 197,FORMAT,NAME\' directive, the default is changed to
1493 \fB\-C 0\fP.
1494
1495 If \'+\' is specified, a report is only printed if the number of sectors
1496 has increased between two check cycles. Some disks do not reset this
1497 attribute when a bad sector is reallocated.
1498 See also \'\-v 197,increasing\' below.
1499
1500 A pending sector is a disk sector (containing 512 bytes of your data)
1501 which the device would like to mark as ``bad" and reallocate.
1502 Typically this is because your computer tried to read that sector, and
1503 the read failed because the data on it has been corrupted and has
1504 inconsistent Error Checking and Correction (ECC) codes. This is
1505 important to know, because it means that there is some unreadable data
1506 on the disk. The problem of figuring out what file this data belongs
1507 to is operating system and file system specific. You can typically
1508 force the sector to reallocate by writing to it (translation: make the
1509 device substitute a spare good sector for the bad one) but at the
1510 price of losing the 512 bytes of data stored there.
1511 .TP
1512 .B \-U ID[+]
1513 [ATA only] Report if the number of offline uncorrectable sectors is
1514 non-zero. Here \fBID\fP is the id number of the Attribute whose raw
1515 value is the Offline Uncorrectable Sector count. The allowed range of
1516 \fBID\fP is 0 to 255 inclusive. To turn off this reporting, use
1517 ID\ =\ 0. If the \fB\-U ID\fP option is not given, then it defaults to
1518 \fB\-U 198\fP (since Attribute 198 is generally used to monitor
1519 offline uncorrectable sectors). If the name of this Attribute is changed
1520 by a \'\-v 198,FORMAT,NAME\' (except \'\-v 198,FORMAT,Offline_Scan_UNC_SectCt\'),
1521 directive, the default is changed to \fB\-U 0\fP.
1522
1523 If \'+\' is specified, a report is only printed if the number of sectors
1524 has increased since the last check cycle. Some disks do not reset this
1525 attribute when a bad sector is reallocated.
1526 See also \'\-v 198,increasing\' below.
1527
1528 An offline uncorrectable sector is a disk sector which was not
1529 readable during an off\-line scan or a self\-test. This is important
1530 to know, because if you have data stored in this disk sector, and you
1531 need to read it, the read will fail. Please see the previous \'\-C\'
1532 option for more details.
1533 .TP
1534 .B \-W DIFF[,INFO[,CRIT]]
1535 Report if the current temperature had changed by at least \fBDIFF\fP
1536 degrees since last report, or if new min or max temperature is detected.
1537 Report or Warn if the temperature is greater or equal than one of
1538 \fBINFO\fP or \fBCRIT\fP degrees Celsius.
1539 If the limit \fBCRIT\fP is reached, a message with loglevel
1540 \fB\'LOG_CRIT\'\fP will be logged to syslog and a warning email
1541 will be send if '-m' is specified. If only the limit \fBINFO\fP is
1542 reached, a message with loglevel \fB\'LOG_INFO\'\fP will be logged.
1543
1544 If this directive is used in conjunction with state persistence
1545 (\'\-s\' option), the min and max temperature values are preserved
1546 across boot cycles. The minimum temperature value is not updated
1547 during the first 30 minutes after startup.
1548
1549 To disable any of the 3 reports, set the corresponding limit to 0.
1550 Trailing zero arguments may be omitted. By default, all temperature
1551 reports are disabled (\'-W 0\').
1552
1553 To track temperature changes of at least 2 degrees, use:
1554 .nf
1555 \fB \-W 2
1556 .fi
1557 To log informal messages on temperatures of at least 40 degrees, use:
1558 .nf
1559 \fB \-W 0,40
1560 .fi
1561 For warning messages/mails on temperatures of at least 45 degrees, use:
1562 .nf
1563 \fB \-W 0,0,45
1564 .fi
1565 To combine all of the above reports, use:
1566 .nf
1567 \fB \-W 2,40,45
1568 .fi
1569
1570 For ATA devices, smartd interprets Attribute 194 as Temperature Celsius
1571 by default. This can be changed to Attribute 9 or 220 by the drive
1572 database or by the \'-v\' directive, see below.
1573 .TP
1574 .B \-F TYPE
1575 [ATA only] Modifies the behavior of \fBsmartd\fP to compensate for
1576 some known and understood device firmware bug. The arguments to this
1577 Directive are exclusive, so that only the final Directive given is
1578 used. The valid values are:
1579
1580 .I none
1581 \- Assume that the device firmware obeys the ATA specifications. This
1582 is the default, unless the device has presets for \'\-F\' in the
1583 device database.
1584
1585 .I samsung
1586 \- In some Samsung disks (example: model SV4012H Firmware Version:
1587 RM100\-08) some of the two\- and four\-byte quantities in the SMART data
1588 structures are byte\-swapped (relative to the ATA specification).
1589 Enabling this option tells \fBsmartd\fP to evaluate these quantities
1590 in byte\-reversed order. Some signs that your disk needs this option
1591 are (1) no self\-test log printed, even though you have run self\-tests;
1592 (2) very large numbers of ATA errors reported in the ATA error log;
1593 (3) strange and impossible values for the ATA error log timestamps.
1594
1595 .I samsung2
1596 \- In some Samsung disks the number of ATA errors reported is byte swapped.
1597 Enabling this option tells \fBsmartd\fP to evaluate this quantity in
1598 byte\-reversed order.
1599
1600 .I samsung3
1601 \- Some Samsung disks (at least SP2514N with Firmware VF100\-37) report
1602 a self\-test still in progress with 0% remaining when the test was already
1603 completed. If this directive is specified, \fBsmartd\fP will not skip the
1604 next scheduled self\-test (see Directive \'\-s\' above) in this case.
1605
1606 Note that an explicit \'\-F\' Directive will over\-ride any preset
1607 values for \'\-F\' (see the \'\-P\' option below).
1608
1609
1610 [Please see the \fBsmartctl \-F\fP command-line option.]
1611 .TP
1612 .B \-v ID,FORMAT[:BYTEORDER][,NAME]
1613 [ATA only] Sets a vendor\-specific raw value print FORMAT, an optional
1614 BYTEORDER and an optional NAME for Attribute ID.
1615 This directive may be used multiple times.
1616 Please see \fBsmartctl -v\fP command-line option for further details.
1617
1618 The following arguments affect smartd warning output:
1619
1620 .I 197,increasing
1621 \- Raw Attribute number 197 (Current Pending Sector Count) is not
1622 reset if uncorrectable sectors are reallocated. This sets \'-C 197+\'
1623 if no other \'-C\' directive is specified.
1624
1625 .I 198,increasing
1626 \- Raw Attribute number 198 (Offline Uncorrectable Sector Count) is not
1627 reset if uncorrectable sector are reallocated. This sets \'-U 198+\'
1628 if no other \'-U\' directive is specified.
1629 .TP
1630 .B \-P TYPE
1631 [ATA only] Specifies whether \fBsmartd\fP should use any preset options
1632 that are available for this drive.
1633 The valid arguments to this Directive are:
1634
1635 .I use
1636 \- use any presets that are available for this drive. This is the default.
1637
1638 .I ignore
1639 \- do not use any presets for this drive.
1640
1641 .I show
1642 \- show the presets listed for this drive in the database.
1643
1644 .I showall
1645 \- show the presets that are available for all drives and then exit.
1646
1647 [Please see the
1648 .B smartctl \-P
1649 command-line option.]
1650 .TP
1651 .B \-a
1652 Equivalent to turning on all of the following Directives:
1653 .B \'\-H\'
1654 to check the SMART health status,
1655 .B \'\-f\'
1656 to report failures of Usage (rather than Prefail) Attributes,
1657 .B \'\-t\'
1658 to track changes in both Prefailure and Usage Attributes,
1659 .B \'\-l\ selftest\'
1660 to report increases in the number of Self-Test Log errors,
1661 .B \'\-l\ error\'
1662 to report increases in the number of ATA errors,
1663 .B \'\-C 197\'
1664 to report nonzero values of the current pending sector count, and
1665 .B \'\-U 198\'
1666 to report nonzero values of the offline pending sector count.
1667
1668 Note that \-a is the default for ATA devices. If none of these other
1669 Directives is given, then \-a is assumed.
1670 .TP
1671 .B #
1672 Comment: ignore the remainder of the line.
1673 .TP
1674 .B \e
1675 Continuation character: if this is the last non-white or non-comment
1676 character on a line, then the following line is a continuation of the current
1677 one.
1678 .PP
1679 If you are not sure which Directives to use, I suggest experimenting
1680 for a few minutes with
1681 .B smartctl
1682 to see what SMART functionality your disk(s) support(s). If you do
1683 not like voluminous syslog messages, a good choice of
1684 \fBsmartd\fP
1685 configuration file Directives might be:
1686 .nf
1687 .B \-H \-l\ selftest \-l\ error \-f.
1688 .fi
1689 If you want more frequent information, use:
1690 .B -a.
1691
1692 .TP
1693 .B ADDITIONAL DETAILS ABOUT DEVICESCAN
1694 If a non-comment entry in the configuration file is the text
1695 string \fBDEVICESCAN\fP in capital letters, then \fBsmartd\fP will
1696 ignore any remaining lines in the configuration file, and will scan
1697 for devices.
1698
1699 [NEW EXPERIMENTAL SMARTD FEATURE] Configuration entries for devices
1700 not found by the platform\-specific device scanning may precede the
1701 \fBDEVICESCAN\fP entry.
1702
1703 If \fBDEVICESCAN\fP is not followed by any Directives, then smartd
1704 will scan for both ATA and SCSI devices, and will monitor all possible
1705 SMART properties of any devices that are found.
1706
1707 \fBDEVICESCAN\fP may optionally be followed by any valid Directives,
1708 which will be applied to all devices that are found in the scan. For
1709 example
1710 .nf
1711 .B DEVICESCAN -m root@example.com
1712 .fi
1713 will scan for all devices, and then monitor them. It will send one
1714 email warning per device for any problems that are found.
1715 .nf
1716 .B DEVICESCAN -d ata -m root@example.com
1717 .fi
1718 will do the same, but restricts the scan to ATA devices only.
1719 .nf
1720 .B DEVICESCAN -H -d ata -m root@example.com
1721 .fi
1722 will do the same, but only monitors the SMART health status of the
1723 devices, (rather than the default \-a, which monitors all SMART
1724 properties).
1725
1726 .TP
1727 .B EXAMPLES OF SHELL SCRIPTS FOR \'\-M exec\'
1728 These are two examples of shell scripts that can be used with the \'\-M
1729 exec PATH\' Directive described previously. The paths to these scripts
1730 and similar executables is the PATH argument to the \'\-M exec PATH\'
1731 Directive.
1732
1733 Example 1: This script is for use with \'\-m ADDRESS -M exec PATH\'. It appends
1734 the output of
1735 .B smartctl -a
1736 to the output of the smartd email warning message and sends it to ADDRESS.
1737
1738 .nf
1739 \fB
1740 #! /bin/bash
1741
1742 # Save the email message (STDIN) to a file:
1743 cat > /root/msg
1744
1745 # Append the output of smartctl -a to the message:
1746 /usr/local/sbin/smartctl -a -d $SMART_DEVICETYPE $SMARTD_DEVICE >> /root/msg
1747
1748 # Now email the message to the user at address ADD:
1749 /bin/mail -s "$SMARTD_SUBJECT" $SMARTD_ADDRESS < /root/msg
1750 \fP
1751 .fi
1752
1753 Example 2: This script is for use with \'\-m <nomailer> \-M exec
1754 PATH\'. It warns all users about a disk problem, waits 30 seconds, and
1755 then powers down the machine.
1756
1757 .nf
1758 \fB
1759 #! /bin/bash
1760
1761 # Warn all users of a problem
1762 wall \'Problem detected with disk: \' "$SMARTD_DEVICESTRING"
1763 wall \'Warning message from smartd is: \' "$SMARTD_MESSAGE"
1764 wall \'Shutting down machine in 30 seconds... \'
1765
1766 # Wait half a minute
1767 sleep 30
1768
1769 # Power down the machine
1770 /sbin/shutdown -hf now
1771 \fP
1772 .fi
1773
1774 Some example scripts are distributed with the smartmontools package,
1775 in /usr/local/share/doc/smartmontools/examplescripts/.
1776
1777 Please note that these scripts typically run as root, so any files
1778 that they read/write should not be writable by ordinary users or
1779 reside in directories like /tmp that are writable by ordinary users
1780 and may expose your system to symlink attacks.
1781
1782 As previously described, if the scripts write to STDOUT or STDERR,
1783 this is interpreted as indicating that there was an internal error
1784 within the script, and a snippet of STDOUT/STDERR is logged to SYSLOG.
1785 The remainder is flushed.
1786
1787 .\" ENDINCLUDE
1788 .\" DO NOT MODIFY THIS OR PREVIOUS/NEXT LINES. THIS DEFINES THE
1789 .\" END OF THE INCLUDE SECTION FOR smartd.conf.5
1790
1791 .SH NOTES
1792 \fBsmartd\fP
1793 will make log entries at loglevel
1794 .B LOG_INFO
1795 if the Normalized SMART Attribute values have changed, as reported using the
1796 .B \'\-t\', \'\-p\',
1797 or
1798 .B \'\-u\'
1799 Directives. For example:
1800 .nf
1801 .B \'Device: /dev/hda, SMART Attribute: 194 Temperature_Celsius changed from 94 to 93\'
1802 .fi
1803 Note that in this message, the value given is the \'Normalized\' not the \'Raw\'
1804 Attribute value (the disk temperature in this case is about 22
1805 Celsius). The
1806 .B \'-R\'
1807 and
1808 .B \'-r\'
1809 Directives modify this behavior, so that the information is printed
1810 with the Raw values as well, for example:
1811 .nf
1812 .B \'Device: /dev/hda, SMART Attribute: 194 Temperature_Celsius changed from 94 [Raw 22] to 93 [Raw 23]\'
1813 .fi
1814 Here the Raw values are the actual disk temperatures in Celsius. The
1815 way in which the Raw values are printed, and the names under which the
1816 Attributes are reported, is governed by the various
1817 .B \'-v Num,Description\'
1818 Directives described previously.
1819
1820 Please see the
1821 .B smartctl
1822 manual page for further explanation of the differences between
1823 Normalized and Raw Attribute values.
1824
1825 \fBsmartd\fP
1826 will make log entries at loglevel
1827 .B LOG_CRIT
1828 if a SMART Attribute has failed, for example:
1829 .nf
1830 .B \'Device: /dev/hdc, Failed SMART Attribute: 5 Reallocated_Sector_Ct\'
1831 .fi
1832 This loglevel is used for reporting enabled by the
1833 .B \'\-H\', \-f\', \'\-l\ selftest\',
1834 and
1835 .B \'\-l\ error\'
1836 Directives. Entries reporting failure of SMART Prefailure Attributes
1837 should not be ignored: they mean that the disk is failing. Use the
1838 .B smartctl
1839 utility to investigate.
1840
1841 Under Solaris with the default \fB/etc/syslog.conf\fP configuration,
1842 messages below loglevel \fBLOG_NOTICE\fP will \fBnot\fP be recorded.
1843 Hence all \fBsmartd\fP messages with loglevel \fBLOG_INFO\fP will be
1844 lost. If you want to use the existing daemon facility to log all
1845 messages from \fBsmartd\fP, you should change \fB/etc/syslog.conf\fP
1846 from:
1847 .nf
1848 ...;daemon.notice;... /var/adm/messages
1849 .fi
1850 to read:
1851 .nf
1852 ...;daemon.info;... /var/adm/messages
1853 .fi
1854 Alternatively, you can use a local facility to log messages: please
1855 see the \fBsmartd\fP '-l' command-line option described above.
1856
1857 On Cygwin and Windows, the log messages are written to the event log
1858 or to a file. See documentation of the '-l FACILITY' option above for
1859 details.
1860
1861 On Windows, the following built-in commands can be used to control
1862 \fBsmartd\fP, if running as a daemon:
1863
1864 \'\fBsmartd status\fP\' \- check status
1865
1866 \'\fBsmartd stop\fP\' \- stop smartd
1867
1868 \'\fBsmartd reload\fP\' \- reread config file
1869
1870 \'\fBsmartd restart\fP\' \- restart smartd
1871
1872 \'\fBsmartd sigusr1\fP\' \- check disks now
1873
1874 \'\fBsmartd sigusr2\fP\' \- toggle debug mode
1875
1876 On WinNT4/2000/XP, \fBsmartd\fP can also be run as a Windows service:
1877
1878
1879 The Cygwin Version of \fBsmartd\fP can be run as a service via the
1880 cygrunsrv tool. The start-up script provides Cygwin-specific commands
1881 to install and remove the service:
1882 .nf
1883 .B /usr/local/etc/rc.d/init.d/smartd install [options]
1884 .B /usr/local/etc/rc.d/init.d/smartd remove
1885 .fi
1886 The service can be started and stopped by the start-up script as usual
1887 (see \fBEXAMPLES\fP above).
1888
1889
1890 The Windows Version of \fBsmartd\fP has buildin support for services:
1891
1892 \'\fBsmartd install [options]\fP\' installs a service
1893 named "smartd" (display name "SmartD Service") using the command line
1894 \'/installpath/smartd.exe --service [options]\'.
1895
1896 \'\fBsmartd remove\fP\' can later be used to remove the service entry
1897 from registry.
1898
1899 Upon startup, the smartd service changes the working directory
1900 to its own installation path. If smartd.conf and blat.exe are stored
1901 in this directory, no \'-c\' option and \'-M exec\' directive is needed.
1902
1903 The debug mode (\'-d\', \'-q onecheck\') does not work if smartd is
1904 running as service.
1905
1906 The service can be controlled as usual with Windows commands \'net\'
1907 or \'sc\' (\'\fBnet start smartd\fP\', \'\fBnet stop smartd\fP\').
1908
1909 Pausing the service (\'\fBnet pause smartd\fP\') sets the interval between
1910 disk checks (\'-i N\') to infinite.
1911
1912 Continuing the paused service (\'\fBnet continue smartd\fP\') resets the
1913 interval and rereads the configuration file immediately (like \fBSIGHUP\fP):
1914
1915 Continuing a still running service (\'\fBnet continue smartd\fP\' without
1916 preceding \'\fBnet pause smartd\fP\') does not reread configuration but
1917 checks disks immediately (like \fBSIGUSR1\fP).
1918
1919 .SH LOG TIMESTAMP TIMEZONE
1920
1921 When \fBsmartd\fP makes log entries, these are time-stamped. The time
1922 stamps are in the computer's local time zone, which is generally set
1923 using either the environment variable \'\fBTZ\fP\' or using a
1924 time-zone file such as \fB/etc/localtime\fP. You may wish to change
1925 the timezone while \fBsmartd\fP is running (for example, if you carry
1926 a laptop to a new time-zone and don't reboot it). Due to a bug in the
1927 \fBtzset(3)\fP function of many unix standard C libraries, the
1928 time-zone stamps of \fBsmartd\fP might not change. For some systems,
1929 \fBsmartd\fP will work around this problem \fIif\fP the time-zone is
1930 set using \fB/etc/localtime\fP. The work-around \fIfails\fP if the
1931 time-zone is set using the \'\fBTZ\fP\' variable (or a file that it
1932 points to).
1933
1934
1935 .SH RETURN VALUES
1936 The return value (exit status) of
1937 \fBsmartd\fP
1938 can have the following values:
1939 .TP
1940 .B 0:
1941 Daemon startup successful, or \fBsmartd\fP was killed by a SIGTERM (or in debug mode, a SIGQUIT).
1942 .TP
1943 .B 1:
1944 Commandline did not parse.
1945 .TP
1946 .B 2:
1947 There was a syntax error in the config file.
1948 .TP
1949 .B 3:
1950 Forking the daemon failed.
1951 .TP
1952 .B 4:
1953 Couldn\'t create PID file.
1954 .TP
1955 .B 5:
1956 Config file does not exist (only returned in conjunction with the \'-c\' option).
1957 .TP
1958 .B 6:
1959 Config file exists, but cannot be read.
1960 .TP
1961 .B 8:
1962 \fBsmartd\fP
1963 ran out of memory during startup.
1964 .TP
1965 .B 9:
1966 A compile time constant of\fB smartd\fP was too small. This can be caused by an
1967 excessive number of disks, or by lines in \fB /usr/local/etc/smartd.conf\fP that are too long.
1968 Please report this problem to \fB smartmontools-support@lists.sourceforge.net\fP.
1969 .TP
1970 .B 10
1971 An inconsistency was found in \fBsmartd\fP\'s internal data
1972 structures. This should never happen. It must be due to either a
1973 coding or compiler bug. \fIPlease\fP report such failures to
1974 smartmontools-support@lists.sourceforge.net.
1975 .TP
1976 .B 16:
1977 A device explicitly listed in
1978 .B /usr/local/etc/smartd.conf
1979 can\'t be monitored.
1980 .TP
1981 .B 17:
1982 \fBsmartd\fP
1983 didn\'t find any devices to monitor.
1984 .TP
1985 .B 254:
1986 When in daemon mode,
1987 \fBsmartd\fP
1988 received a SIGINT or SIGQUIT. (Note that in debug mode, SIGINT has
1989 the same effect as SIGHUP, and makes \fBsmartd\fP reload its
1990 configuration file. SIGQUIT has the same effect as SIGTERM and causes
1991 \fBsmartd\fP to exit with zero exit status.
1992 .TP
1993 .B 132 and above
1994 \fBsmartd\fP
1995 was killed by a signal that is not explicitly listed above. The exit
1996 status is then 128 plus the signal number. For example if
1997 \fBsmartd\fP
1998 is killed by SIGKILL (signal 9) then the exit status is 137.
1999
2000 .PP
2001 .SH AUTHOR
2002 \fBBruce Allen\fP smartmontools\-support@lists.sourceforge.net
2003 .fi
2004 University of Wisconsin \- Milwaukee Physics Department
2005
2006 .PP
2007 .SH CONTRIBUTORS
2008 The following have made large contributions to smartmontools:
2009 .nf
2010 \fBCasper Dik\fP (Solaris SCSI interface)
2011 \fBChristian Franke\fP (Windows interface, C++ redesign, USB support, ...)
2012 \fBDouglas Gilbert\fP (SCSI subsystem)
2013 \fBGuido Guenther\fP (Autoconf/Automake packaging)
2014 \fBGeoffrey Keating\fP (Darwin ATA interface)
2015 \fBEduard Martinescu\fP (FreeBSD interface)
2016 \fBFr\*'ed\*'eric L. W. Meunier\fP (Web site and Mailing list)
2017 \fBGabriele Pohl\fP (Web site and Wiki, conversion from CVS to SVN)
2018 \fBKeiji Sawada\fP (Solaris ATA interface)
2019 \fBManfred Schwarb\fP (Drive database)
2020 \fBSergey Svishchev\fP (NetBSD interface)
2021 \fBDavid Snyder and Sergey Svishchev\fP (OpenBSD interface)
2022 \fBPhil Williams\fP (User interface and drive database)
2023 \fBShengfeng Zhou\fP (Linux/FreeBSD HighPoint RocketRAID interface)
2024 .fi
2025 Many other individuals have made smaller contributions and corrections.
2026
2027 .PP
2028 .SH CREDITS
2029 .fi
2030 This code was derived from the smartsuite package, written by Michael
2031 Cornwell, and from the previous UCSC smartsuite package. It extends
2032 these to cover ATA\-5 disks. This code was originally developed as a
2033 Senior Thesis by Michael Cornwell at the Concurrent Systems Laboratory
2034 (now part of the Storage Systems Research Center), Jack Baskin School
2035 of Engineering, University of California, Santa
2036 Cruz. \fBhttp://ssrc.soe.ucsc.edu/\fP .
2037 .SH
2038 HOME PAGE FOR SMARTMONTOOLS:
2039 .fi
2040 Please see the following web site for updates, further documentation, bug
2041 reports and patches: \fBhttp://smartmontools.sourceforge.net/\fP
2042
2043 .SH
2044 SEE ALSO:
2045 \fBsmartd.conf\fP(5), \fBsmartctl\fP(8), \fBsyslogd\fP(8),
2046 \fBsyslog.conf\fP(5), \fBbadblocks\fP(8), \fBide\-smart\fP(8), \fBregex\fP(7).
2047
2048 .SH
2049 REFERENCES FOR SMART
2050 .fi
2051 An introductory article about smartmontools is \fIMonitoring Hard
2052 Disks with SMART\fP, by Bruce Allen, Linux Journal, January 2004,
2053 pages 74\-77. This is \fBhttp://www.linuxjournal.com/article/6983\fP
2054 online.
2055
2056 If you would like to understand better how SMART works, and what it
2057 does, a good place to start is with Sections 4.8 and 6.54 of the first
2058 volume of the \'AT Attachment with Packet Interface\-7\' (ATA/ATAPI\-7)
2059 specification Revision 4b. This documents the SMART functionality which the
2060 \fBsmartmontools\fP utilities provide access to.
2061 This and other versions of this Specification are available from
2062 the T13 web site \fBhttp://www.t13.org/\fP .
2063
2064 .fi
2065 The functioning of SMART was originally defined by the SFF\-8035i
2066 revision 2 and the SFF\-8055i revision 1.4 specifications. These are
2067 publications of the Small Form Factors (SFF) Committee.
2068
2069 Links to these and other documents may be found on the Links page of the
2070 \fBsmartmontools\fP Wiki at
2071 \fBhttp://sourceforge.net/apps/trac/smartmontools/wiki/Links\fP .
2072
2073 .SH
2074 SVN ID OF THIS PAGE:
2075 $Id: smartd.8.in 3284 2011-03-04 21:33:35Z chrfranke $