diff options
Diffstat (limited to 'smartd.8.in')
-rw-r--r-- | smartd.8.in | 928 |
1 files changed, 928 insertions, 0 deletions
diff --git a/smartd.8.in b/smartd.8.in new file mode 100644 index 0000000..2a8501c --- /dev/null +++ b/smartd.8.in @@ -0,0 +1,928 @@ +.ig +Copyright (C) 2002-10 Bruce Allen +Copyright (C) 2004-23 Christian Franke + +SPDX-License-Identifier: GPL-2.0-or-later + +$Id: smartd.8.in 5521 2023-07-24 16:44:49Z chrfranke $ + +.. +.\" Macros borrowed from pages generated with Pod::Man +.de Sp \" Vertical space (when we can't use .PP) +.if t .sp 0.4v +.if n .sp +.. +.de Vb \" Begin verbatim text +.if t .ft CW +.if n .ft R +.nf +.ne \\$1 +.. +.de Ve \" End verbatim text +.ft R +.fi +.. +.\" Use groff extension \(aq (apostrophe quote, ASCII 0x27) if possible +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.TH SMARTD 8 "CURRENT_SVN_DATE" "CURRENT_SVN_VERSION" "SMART Monitoring Tools" +.SH NAME +\fBsmartd\fP \- SMART Disk Monitoring Daemon +.Sp +.SH SYNOPSIS +.B smartd [options] +.Sp +.SH DESCRIPTION +.\" %IF NOT OS ALL +.\"! [This man page is generated for the OS_MAN_FILTER version of smartmontools. +.\"! It does not contain info specific to other platforms.] +.\"! .PP +.\" %ENDIF NOT OS ALL +\fBsmartd\fP is a daemon that monitors the Self-Monitoring, Analysis and +Reporting Technology (SMART) system built into most ATA/SATA and SCSI/SAS +hard drives and solid-state drives. +The purpose of SMART is to monitor the reliability of the hard drive +and predict drive failures, and to carry out different types of drive +self-tests. +This version of \fBsmartd\fP is compatible with +ACS-3, ACS-2, ATA8-ACS, ATA/ATAPI-7 and earlier standards +(see \fBREFERENCES\fP below). +.PP +\fBsmartd\fP will attempt to enable SMART monitoring on ATA devices +(equivalent to \fBsmartctl \-s on\fP) and polls these and SCSI devices +every 30 minutes (configurable), logging SMART errors and changes of +SMART Attributes via the SYSLOG interface. The default location for +these SYSLOG notifications and warnings is system-dependent +(typically \fB/var/log/messages\fP or \fB/var/log/syslog\fP). +To change this default location, please see the \*(Aq\-l\*(Aq +command-line option described below. +.PP +In addition to logging to a file, \fBsmartd\fP can also be configured +to send email warnings if problems are detected. Depending upon the +type of problem, you may want to run self-tests on the disk, back up +the disk, replace the disk, or use a manufacturer's utility to force +reallocation of bad or unreadable disk sectors. If disk problems are +detected, please see the \fBsmartctl\fP manual page and the +\fBsmartmontools\fP web page/FAQ for further guidance. +.PP +If you send a \fBUSR1\fP signal to \fBsmartd\fP it will immediately +check the status of the disks, and then return to polling the disks +every 30 minutes. +See the \*(Aq\-i\*(Aq option below for additional details. +.PP +\fBsmartd\fP can be configured at start-up using the configuration +file \fB/usr/local/etc/smartd.conf\fP (Windows: \fBEXEDIR/smartd.conf\fP). +If the configuration file is subsequently modified, \fBsmartd\fP +can be told to re-read the configuration file by sending it a +\fBHUP\fP signal, for example with the command: +.br +\fBkillall \-HUP smartd\fP. +.br +.\" %IF OS Windows +(Windows: See NOTES below.) +.\" %ENDIF OS Windows +.PP +On startup, if \fBsmartd\fP finds a syntax error in the configuration +file, it will print an error message and then exit. However if +\fBsmartd\fP is already running, then is told with a \fBHUP\fP signal +to re-read the configuration file, and then find a syntax error in +this file, it will print an error message and then continue, ignoring +the contents of the (faulty) configuration file, as if the \fBHUP\fP +signal had never been received. +.PP +When \fBsmartd\fP is running in debug mode, the \fBINT\fP signal +(normally generated from a shell with CONTROL-C) is treated in the +same way as a \fBHUP\fP signal: it makes \fBsmartd\fP reload its +configuration file. +To exit \fBsmartd\fP use CONTROL-\e. +.\" %IF OS Windows +(Windows: CONTROL-Break). +.\" %ENDIF OS Windows +.\" %IF ENABLE_SYSTEMD_NOTIFY +.PP +[Linux only] If \fBsmartd\fP is started as a \fBsystemd\fP(1) service and +\*(AqType=Notify\*(Aq is specified in the service file, the service manager +is notified after successful startup. +Other state changes are reported via systemd notify STATUS messages. +Notification of successful reloads (after \fBHUP\fP signal) is not supported. +To detect this process start-up type, \fBsmartd\fP checks whether the +environment variable \*(AqNOTIFY_SOCKET\*(Aq is set. +Note that it is required to set the \*(Aq\-n\*(Aq (\*(Aq\-\-nofork\*(Aq) +option in the \*(AqExecStart=/usr/local/sbin/smartd\*(Aq command line +if \*(AqType=Notify\*(Aq is used. +.\" %ENDIF ENABLE_SYSTEMD_NOTIFY +.PP +On startup, in the absence of the configuration file +\fB/usr/local/etc/smartd.conf\fP, the \fBsmartd\fP daemon first scans for all +devices that support SMART. The scanning is done as follows: +.\" %IF OS Linux +.IP \fBLINUX:\fP 9 +Examine all entries \fB"/dev/hd[a\-t]"\fP for IDE/ATA +devices, and \fB"/dev/sd[a\-z]"\fP, \fB"/dev/sd[a\-z][a\-z]"\fP +for ATA/SATA or SCSI/SAS devices. +Disks behind RAID controllers are not included. +.Sp +If directive \*(Aq\-d nvme\*(Aq +.\" %IF ENABLE_NVME_DEVICESCAN +or no \*(Aq\-d\*(Aq directive +.\" %ENDIF ENABLE_NVME_DEVICESCAN +is specified, examine all entries \fB"/dev/nvme[0\-99]"\fP for NVMe devices. +.\" %ENDIF OS Linux +.\" %IF OS FreeBSD +.IP \fBFREEBSD:\fP 9 +Authoritative list of disk devices is obtained from SCSI (CAM) and ATA +subsystems. +Disks behind RAID controllers are not included. +.\" %ENDIF OS FreeBSD +.\" %IF OS NetBSD OpenBSD +.IP \fBNETBSD/OPENBSD:\fP 9 +Authoritative list of disk devices is obtained from sysctl +\*(Aqhw.disknames\*(Aq. +.\" %ENDIF OS NetBSD OpenBSD +.\" %IF OS Solaris +.IP \fBSOLARIS:\fP 9 +Examine all entries \fB"/dev/rdsk/*s0"\fP for IDE/ATA and SCSI disk +devices, and entries \fB"/dev/rmt/*"\fP for SCSI tape devices. +.\" %ENDIF OS Solaris +.\" %IF OS Darwin +.IP \fBDARWIN:\fP 9 +The IOService plane is scanned for ATA block storage devices. +.\" %ENDIF OS Darwin +.\" %IF OS Windows Cygwin +.IP \fBWINDOWS\fP: 9 +Examine all entries \fB"/dev/sd[a\-z]"\fP, \fB"/dev/sd[a\-c][a\-z]"\fP +and \fB"/dev/sdd[a\-x]"\fP ("\\\\.\\PhysicalDrive[0\-127]") for +IDE/(S)ATA and SCSI disk devices. +.Sp +If a 3ware 9000 controller is installed, examine all entries +\fB"/dev/sdX,N"\fP for the first logical drive (\*(Aqunit\*(Aq +\fB"/dev/sdX"\fP) and all physical disks (\*(Aqports\*(Aq \fB",N"\fP) +detected behind this controller. +Same for a second controller if present. +.Sp +If directive \*(Aq\-d csmi\*(Aq or no \*(Aq\-d\*(Aq directive is specified, +examine all entries \fB"/dev/csmi[0\-9],N"\fP for drives behind an Intel +ICHxR controller with RST driver. +.Sp +Disks behind Areca RAID controllers are not included. +.Sp +If directive \*(Aq\-d nvme\*(Aq +.\" %IF ENABLE_NVME_DEVICESCAN +or no \*(Aq\-d\*(Aq directive +.\" %ENDIF ENABLE_NVME_DEVICESCAN +is specified, examine all entries \fB"/dev/sd[...]"\fP (see above) +and all entries \fB"/dev/nvme[0\-9]"\fP for NVMe devices. +.\" %ENDIF OS Windows Cygwin +.PP +\fBsmartd\fP then monitors +for \fIall\fP possible SMART errors (corresponding to the \*(Aq\-a\*(Aq +Directive in the configuration file; see the \fBsmartd.conf\fP(5) man page). +.Sp +.SH OPTIONS +.TP +.B \-A PREFIX, \-\-attributelog=PREFIX +Writes \fBsmartd\fP attribute information (normalized and raw +attribute values) to files \*(AqPREFIX\*(Aq\*(AqMODEL\-SERIAL.ata.csv\*(Aq +or \*(AqPREFIX\*(Aq\*(AqVENDOR\-MODEL\-SERIAL.scsi.csv\*(Aq. +At each check cycle attributes are logged as a line of semicolon separated +triplets of the form "attribute-ID;attribute-norm-value;attribute-raw-value;". +For SCSI devices error counters and temperature recorded in the form +"counter-name;counter-value;". +Each line is led by a date string of the form "yyyy-mm-dd HH:MM:SS" +(in local time). +.Sp +.\" %IF ENABLE_ATTRIBUTELOG +If this option is not specified, attribute information is written to files +\*(Aq/usr/local/var/lib/smartmontools/attrlog.MODEL\-SERIAL.ata.csv\*(Aq. +.br +[NEW EXPERIMENTAL SMARTD 7.3 FEATURE] +If \*(Aq\-\*(Aq is specified as the argument, attribute log files are +disabled. +.Sp +.\" %ENDIF ENABLE_ATTRIBUTELOG +MODEL and SERIAL are build from drive identify information, invalid +characters are replaced by underline. +.Sp +If the PREFIX has the form \*(Aq/path/dir/\*(Aq (e.g.\& +\*(Aq/var/lib/smartd/\*(Aq), then files \*(AqMODEL\-SERIAL.ata.csv\*(Aq are +created in directory \*(Aq/path/dir\*(Aq. +If the PREFIX has the form \*(Aq/path/name\*(Aq (e.g.\& +\*(Aq/var/lib/misc/attrlog\-\*(Aq), +then files \*(AqnameMODEL\-SERIAL.ata.csv\*(Aq are created in directory +\*(Aq/path/\*(Aq. +The path must be absolute, except if debug mode is enabled. +.TP +.B \-B [+]FILE, \-\-drivedb=[+]FILE +[ATA only] Read the drive database from FILE. The new database replaces +the built in database by default. If \*(Aq+\*(Aq is specified, then the new +entries prepend the built in entries. +Please see the \fBsmartctl\fP(8) man page for further details. +.TP +.B \-c FILE, \-\-configfile=FILE +Read \fBsmartd\fP configuration Directives from FILE, instead of from +the default location \fB/usr/local/etc/smartd.conf\fP +(Windows: \fBEXEDIR/smartd.conf\fP). +If FILE does \fBnot\fP exist, then \fBsmartd\fP will print an error +message and exit with nonzero status. +Thus, \*(Aq\-c /usr/local/etc/smartd.conf\*(Aq can be used to verify the +existence of the default configuration file. +.Sp +By using \*(Aq\-\*(Aq for FILE, the configuration is read from standard input. +This is useful for commands like: +.br +.B echo /dev/sdb \-m user@home \-M test | smartd \-c \- \-q onecheck +.br +to perform quick and simple checks without a configuration file. +.\" %IF ENABLE_CAPABILITIES +.TP +.B \-C, \-\-capabilities[=mail] +[Linux only] Use libcap-ng to drop unneeded Linux process \fBcapabilities\fP(7). +The following capabilities are kept in the effective and permissive sets: +CAP_SYS_ADMIN, CAP_SYS_RAWIO, CAP_MKNOD. +If the \*(Aq\-u, \-\-warn_as_user\*(Aq option (see below) is used with a +non-privileged user or group, the following capabilities are also kept: +CAP_SETGID, CAP_SETUID. +The capability bounding set is cleared. +.Sp +[NEW EXPERIMENTAL SMARTD 7.3 FEATURE] +Mail notification is no longer suppressed if capabilities are dropped. +It depends on the local MTA whether mail could be send from a root process +with all capabilities dropped. +It works with the \fBpostfix\fP MTA. +.Sp +If \*(Aq\-\-capabilities=mail\*(Aq is specified, the following +capabilities are added to the bounding set: +CAP_SETGID, CAP_SETUID, CAP_CHOWN, CAP_FOWNER, CAP_DAC_OVERRIDE. +This allows one to send mail with the \fBexim\fP MTA. +.\" %ENDIF ENABLE_CAPABILITIES +.TP +.B \-d, \-\-debug +Runs \fBsmartd\fP in "debug" mode. In this mode, it displays status +information to STDOUT rather than logging it to SYSLOG and does not +\fBfork\fP(2) into the background and detach from the controlling +terminal. In this mode, \fBsmartd\fP also prints more verbose +information about what it is doing than when operating in "daemon" +mode. In this mode, the \fBINT\fP signal (normally generated from a +terminal with CONTROL-C) makes \fBsmartd\fP reload its configuration +file. Please use CONTROL-\e to exit +.\" %IF OS Windows +(Windows: CONTROL-Break). +.Sp +[Windows only] The "debug" mode can be toggled by the command +\fBsmartd sigusr2\fP. +A new console for debug output is opened when debug mode is enabled. +.\" %ENDIF OS Windows +.TP +.B \-D, \-\-showdirectives +Prints a list (to STDOUT) of all the possible Directives which may +appear in the configuration file /usr/local/etc/smartd.conf, and then exits. +These Directives are described in the \fBsmartd.conf\fP(5) man page. +They may appear in the configuration file following the device name. +.TP +.B \-h, \-\-help, \-\-usage +Prints usage message to STDOUT and exits. +.TP +.B \-i N, \-\-interval=N +Sets the interval between disk checks to \fIN\fP seconds, where +\fIN\fP is a decimal integer. The minimum allowed value is ten and +the maximum is the largest positive integer that can be represented on +your system (often 2^31\-1). The default is 1800 seconds. +.br +[NEW EXPERIMENTAL SMARTD 7.3 FEATURE] +The interval could be overridden with the \*(Aq\-c i=N\*(Aq directive, +see \fBsmartd.conf\fP(5) man page. +.Sp +Note that the superuser can make \fBsmartd\fP check the status of the +disks at any time by sending it the \fBSIGUSR1\fP signal, for example +with the command: +.br +.B kill \-SIGUSR1 <pid> +.br +where \fB<pid>\fP is the process id number of \fBsmartd\fP. One may +also use: +.br +.B killall \-USR1 smartd +.br +for the same purpose. +.br +.\" %IF OS Windows +(Windows: See NOTES below.) +.\" %ENDIF OS Windows +.TP +.B \-l FACILITY, \-\-logfacility=FACILITY +Uses syslog facility FACILITY to log the messages from \fBsmartd\fP. +Here FACILITY is one of \fIlocal0\fP, \fIlocal1\fP, ..., \fIlocal7\fP, +or \fIdaemon\fP [default]. If this command-line option is not used, +then by default messages from \fBsmartd\fP are logged to the facility +\fIdaemon\fP. +.Sp +If you would like to have \fBsmartd\fP messages logged somewhere other +than the default location, include (for example) \*(Aq\-l local3\*(Aq in its +start up argument list. +Tell the syslog daemon to log all messages from facility \fBlocal3\fP +to (for example) \*(Aq/var/log/smartd.log\*(Aq. +.Sp +For more detailed information, please refer to the man pages for +the local syslog daemon, typically \fBsyslogd\fP(8), \fBsyslog-ng\fP(8) +or \fBrsyslogd\fP(8). +.\" %IF OS Cygwin +.Sp +Cygwin: If no \fBsyslogd\fP is running, the \*(Aq\-l\*(Aq option has no effect. +In this case, all \fBsyslog\fP messages are written to Windows event log. +.\" %ENDIF OS Cygwin +.\" %IF OS Windows +.Sp +Windows: Some \fBsyslog\fP functionality is implemented +internally in \fBsmartd\fP as follows: If no \*(Aq\-l\*(Aq option +(or \*(Aq\-l daemon\*(Aq) is specified, messages are written to Windows +event log or to file \fB./smartd.log\fP if event log is not available +(access denied). +By specifying other values of FACILITY, log output is redirected as follows: +\*(Aq\-l local0\*(Aq to file \fB./smartd.log\fP, +\*(Aq\-l local1\*(Aq to standard output (redirect with \*(Aq>\*(Aq to any file), +\*(Aq\-l local2\*(Aq to standard error, +\*(Aq\-l local[3\-7]\*(Aq: to file \fB./smartd[1\-5].log\fP. +.\" %ENDIF OS Windows +.TP +.B \-n, \-\-no\-fork +Do not fork into background; this is useful when executed from modern +init methods like initng, minit, supervise or systemd. +.\" %IF OS Cygwin +.Sp +On Cygwin, this allows running \fBsmartd\fP as service via cygrunsrv, +see NOTES below. +.\" %ENDIF OS Cygwin +.\" %IF OS Windows +.Sp +On Windows, this option is not available, use \*(Aq\-\-service\*(Aq instead. +.\" %ENDIF OS Windows +.TP +.B \-p NAME, \-\-pidfile=NAME +Writes pidfile \fINAME\fP containing the \fBsmartd\fP Process ID +number (PID). To avoid symlink attacks make sure the directory to +which pidfile is written is only writable for root. Without this +option, or if the \-\-debug option is given, no PID file is written on +startup. If \fBsmartd\fP is killed with a maskable signal then the +pidfile is removed. +.TP +.B \-q WHEN, \-\-quit=WHEN +Specifies when, if ever, \fBsmartd\fP should exit. The valid +arguments are to this option are: +.Sp +.I nodev +\- Exit if there are no devices to monitor, or if any errors are found +at startup in the configuration file. +This is the default. +.Sp +.I errors +\- Exit if there are no devices to monitor, or if any errors are found +in the configuration file /usr/local/etc/smartd.conf at startup or whenever it +is reloaded. +.Sp +.I nodevstartup +\- Exit if there are no devices to monitor at startup. But continue +to run if no devices are found whenever the configuration file is +reloaded. +.Sp +.I never +\- Only exit if a fatal error occurs (no remaining system memory, +invalid command line arguments). +In this mode, even if there are no devices to monitor, or if the configuration +file \fB/usr/local/etc/smartd.conf\fP has errors, \fBsmartd\fP will continue +to run, waiting to load a configuration file listing valid devices. +.Sp +.I nodev0 +\- [NEW EXPERIMENTAL SMARTD 7.3 FEATURE] +Same as \*(Aqnodev\*(Aq, except that the exit status is 0 if there are no +devices to monitor. +.Sp +.I nodev0startup +\- [NEW EXPERIMENTAL SMARTD 7.3 FEATURE] +Same as \*(Aqnodevstartup\*(Aq, except that the exit status is 0 if there are no +devices to monitor. +.Sp +.I errors,nodev0 +\- [NEW EXPERIMENTAL SMARTD 7.3 FEATURE] +Same as \*(Aqerrors\*(Aq, except that the exit status is 0 if there are no +devices to monitor. +.Sp +.I onecheck +\- Start \fBsmartd\fP in debug mode, then register devices, then check +device's SMART status once, and then exit with zero exit status if all +of these steps worked correctly. +.Sp +This last option is intended for \*(Aqdistribution-writers\*(Aq who want to +create automated scripts to determine whether or not to automatically +start up \fBsmartd\fP after installing smartmontools. After starting +\fBsmartd\fP with this command-line option, the distribution's install +scripts should wait a reasonable length of time (say ten seconds). If +\fBsmartd\fP has not exited with zero status by that time, the script +should send \fBsmartd\fP a SIGTERM or SIGKILL and assume that +\fBsmartd\fP will not operate correctly on the host. Conversely, if +\fBsmartd\fP exits with zero status, then it is safe to run +\fBsmartd\fP in normal daemon mode. If \fBsmartd\fP is unable to +monitor any devices or encounters other problems then it will return +with non-zero exit status. +.Sp +.I showtests +\- Start \fBsmartd\fP in debug mode, then register devices, then write +a list of future scheduled self tests to stdout, and then exit with zero +exit status if all of these steps worked correctly. +Device's SMART status is not checked. +.Sp +This option is intended to test whether the \*(Aq\-s REGEX\*(Aq directives in +smartd.conf will have the desired effect. The output lists the next test +schedules, limited to 5 tests per type and device. This is followed by a +summary of all tests of each device within the next 90 days. +.TP +.B \-r TYPE, \-\-report=TYPE +Intended primarily to help +.B smartmontools +developers understand the behavior of +.B smartmontools +on non-conforming or poorly-conforming hardware. This option reports +details of +\fBsmartd\fP +transactions with the device. The option can be used multiple times. +When used just once, it shows a record of the ioctl() transactions +with the device. When used more than once, the detail of these ioctl() +transactions are reported in greater detail. The valid arguments to +this option are: +.Sp +.I ioctl +\- report all ioctl() transactions. +.Sp +.I ataioctl +\- report only ioctl() transactions with ATA devices. +.Sp +.I scsiioctl +\- report only ioctl() transactions with SCSI devices. +.Sp +.\" %IF OS Darwin FreeBSD Linux NetBSD Windows Cygwin +.I nvmeioctl +\- report only ioctl() transactions with NVMe devices. +.Sp +.\" %ENDIF OS Darwin FreeBSD Linux NetBSD Windows Cygwin +Any argument may include a positive integer to specify the level of +detail that should be reported. The argument should be followed by a +comma then the integer with no spaces. For example, \fIataioctl,2\fP +The default level is 1, so \*(Aq\-r ataioctl,1\*(Aq and +\*(Aq\-r ataioctl\*(Aq are equivalent. +.TP +.B \-s PREFIX, \-\-savestates=PREFIX +Reads/writes \fBsmartd\fP state information from/to files +\*(AqPREFIX\*(Aq\*(AqMODEL\-SERIAL.ata.state\*(Aq or +\*(AqPREFIX\*(Aq\*(AqVENDOR\-MODEL\-SERIAL.scsi.state\*(Aq. +This preserves SMART attributes, drive min and max temperatures (\-W directive), +info about last sent warning email +(\-m directive), and the time of next check of the self-test REGEXP +(\-s directive) across boot cycles. +.Sp +.\" %IF ENABLE_SAVESTATES +If this option is not specified, state information is maintained in files +\*(Aq/usr/local/var/lib/smartmontools/smartd.MODEL\-SERIAL.ata.state\*(Aq +for ATA devices and +\*(Aq/usr/local/var/lib/smartmontools/smartd.VENDOR\-MODEL\-SERIAL.scsi.state\*(Aq +for SCSI devices. +.br +[NEW EXPERIMENTAL SMARTD 7.3 FEATURE] +If \*(Aq\-\*(Aq is specified as the argument, state files are disabled. +.Sp +.\" %ENDIF ENABLE_SAVESTATES +MODEL and SERIAL are build from drive identify information, invalid +characters are replaced by underline. +.Sp +If the PREFIX has the form \*(Aq/path/dir/\*(Aq (e.g.\& +\*(Aq/var/lib/smartd/\*(Aq), then files \*(AqMODEL\-SERIAL.ata.state\*(Aq are +created in directory \*(Aq/path/dir\*(Aq. +If the PREFIX has the form \*(Aq/path/name\*(Aq (e.g.\& +\*(Aq/var/lib/misc/smartd\-\*(Aq), +then files \*(AqnameMODEL\-SERIAL.ata.state\*(Aq are created in directory +\*(Aq/path/\*(Aq. +The path must be absolute, except if debug mode is enabled. +.Sp +The state information files are read on smartd startup. The files are +always (re)written after reading the configuration file, before rereading +the configuration file (SIGHUP), before smartd shutdown, and after a check +forced by SIGUSR1. After a normal check cycle, a file is only rewritten if +an important change (which usually results in a SYSLOG output) occurred. +.TP +.B \-w PATH, \-\-warnexec=PATH +Run the executable PATH instead of the default script when smartd +needs to send warning messages. PATH must point to an executable binary +file or script. +The default script is +.\" %IF NOT OS Windows +\fB/usr/local/etc/smartd_warning.sh\fP. +.\" %ENDIF NOT OS Windows +.\" %IF OS ALL +(Windows: EXEDIR/smartd_warning.cmd) +.\" %ENDIF OS ALL +.\" %IF OS Windows +.\"! \fBEXEDIR/smartd_warning.cmd\fP. +.\" %ENDIF OS Windows +.\" %IF OS Darwin FreeBSD Linux NetBSD OpenBSD Solaris Cygwin +.TP +.B \-u USER[:GROUP], \-\-warn\-as\-user=USER[:GROUP] +[NEW EXPERIMENTAL SMARTD 7.3 FEATURE] +Run the warning script as a non-privileged user instead of root. +The USER and optional GROUP may be specified as numeric ids or names. +If no GROUP is specified, the default group of USER is used instead. +.Sp +If a warning occurs, a child process is created with \fBfork\fP(2). +This process closes all inherited file descriptors, connects stdio to +/dev/null, changes the user and group ids, removes any supplementary +group ids and then calls the \fBpopen\fP(3) function from the standard +library. +.Sp +If \*(Aq0:0\*(Aq is specified, user and group are not changed, but the +remaining actions still apply. +.Sp +If \*(Aq-\*(Aq is specified, \fBpopen\fP(3) is called directly. +This is the default. +.\" %ENDIF OS Darwin FreeBSD Linux NetBSD OpenBSD Solaris Cygwin +.\" %IF OS Windows +.TP +.B \-u MODE, \-\-warn\-as\-user=MODE +[Windows only: NEW EXPERIMENTAL SMARTD 7.3 FEATURE] +Run the warning script with a modified access token. +The valid arguments to this option are: +.Sp +.I restricted +\- Run the warning script with a restricted access token. +The local \*(AqAdministrator\*(Aq group and most privileges +(all except \*(AqSeChangeNotifyPrivilege\*(Aq) are removed. +This is not effective if the current user is the local \*(AqSYSTEM\*(Aq +or \*(AqAdministrator\*(Aq account. +If this is the case, \fBsmartd\fP logs an error message during startup +and exits. +.Sp +.I unchanged +\- Run the warning script without changing the access token. +This is the default. +.TP +.B \-\-service +[Windows only] Enables \fBsmartd\fP to run as a Windows service. +The option must be specified in the service command line as the first +argument. +It should not be used from console. +See NOTES below for details. +.\" %ENDIF OS Windows +.TP +.B \-V, \-\-version, \-\-license, \-\-copyright +Prints version, copyright, license, home page and SVN revision +information for your copy of \fBsmartd\fP to STDOUT and then exits. +.Sp +.SH EXAMPLES +.B smartd +.br +Runs the daemon in forked mode. This is the normal way to run +\fBsmartd\fP. +Entries are logged to SYSLOG. +.Sp +.B smartd \-d \-i 30 +.br +Run in foreground (debug) mode, checking the disk status +every 30 seconds. +.Sp +.B smartd \-q onecheck +.br +Registers devices, and checks the status of the devices exactly +once. +The exit status (the shell +.B $? +variable) will be zero if all went well, and nonzero if no devices +were detected or some other problem was encountered. +.\" %IF ENABLE_INITSCRIPT +.Sp +Note that \fBsmartmontools\fP provides a start-up script in +\fB/usr/local/etc/rc.d/init.d/smartd\fP which is responsible for starting and +stopping the daemon via the normal init interface. Using this script, +you can start \fBsmartd\fP by giving the command: +.br +.B /usr/local/etc/rc.d/init.d/smartd start +.br +and stop it by using the command: +.br +.B /usr/local/etc/rc.d/init.d/smartd stop +.\" %ENDIF ENABLE_INITSCRIPT +.Sp +.SH CONFIGURATION +The syntax of the \fBsmartd.conf\fP(5) file is discussed separately. +.Sp +.SH NOTES +\fBsmartd\fP +will make log entries at loglevel +.B LOG_INFO +if the Normalized SMART Attribute values have changed, as reported using the +.B \*(Aq\-t\*(Aq, \*(Aq\-p\*(Aq, +or +.B \*(Aq\-u\*(Aq +Directives. +For example: +.br +.B \*(AqDevice: /dev/sda, SMART Attribute: 194 Temperature_Celsius changed from 94 to 93\*(Aq +.br +Note that in this message, the value given is the \*(AqNormalized\*(Aq not the +\*(AqRaw\*(Aq Attribute value (the disk temperature in this case is about 22 +Celsius). The +.B \*(Aq\-R\*(Aq +and +.B \*(Aq\-r\*(Aq +Directives modify this behavior, so that the information is printed +with the Raw values as well, for example: +.br +.B \*(AqDevice: /dev/sda, SMART Attribute: 194 Temperature_Celsius changed from 94 [Raw 22] to 93 [Raw 23]\*(Aq +.br +Here the Raw values are the actual disk temperatures in Celsius. The +way in which the Raw values are printed, and the names under which the +Attributes are reported, is governed by the various +.B \*(Aq\-v Num,Description\*(Aq +Directives described previously. +.PP +Please see the +.B smartctl +manual page for further explanation of the differences between +Normalized and Raw Attribute values. +.PP +\fBsmartd\fP +will make log entries at loglevel +.B LOG_CRIT +if a SMART Attribute has failed, for example: +.br +.B \*(AqDevice: /dev/sdc, Failed SMART Attribute: 5 Reallocated_Sector_Ct\*(Aq +.br +This loglevel is used for reporting enabled by the +.B \*(Aq\-H\*(Aq, \-f\*(Aq, \*(Aq\-l\ selftest\*(Aq, +and +.B \*(Aq\-l\ error\*(Aq +Directives. Entries reporting failure of SMART Prefailure Attributes +should not be ignored: they mean that the disk is failing. Use the +.B smartctl +utility to investigate. +.\" %IF OS Solaris +.PP +Under Solaris with the default \fB/etc/syslog.conf\fP configuration, +messages below loglevel \fBLOG_NOTICE\fP will \fBnot\fP be recorded. +Hence all \fBsmartd\fP messages with loglevel \fBLOG_INFO\fP will be +lost. If you want to use the existing daemon facility to log all +messages from \fBsmartd\fP, you should change \fB/etc/syslog.conf\fP +from: +.Vb 1 + ...;daemon.notice;... /var/adm/messages +.Ve +to read: +.Vb 1 + ...;daemon.info;... /var/adm/messages +.Ve +Alternatively, you can use a local facility to log messages: please +see the \fBsmartd\fP \*(Aq\-l\*(Aq command-line option described above. +.\" %ENDIF OS Solaris +.\" %IF OS Cygwin +.PP +The Cygwin Version of \fBsmartd\fP can be run as a service via the +cygrunsrv tool. +.\" %IF ENABLE_INITSCRIPT +The start-up script provides Cygwin-specific commands to install and +remove the service: +.br +.B /usr/local/etc/rc.d/init.d/smartd install [options] +.br +.B /usr/local/etc/rc.d/init.d/smartd remove +.br +The service can be started and stopped by the start-up script as usual +(see \fBEXAMPLES\fP above). +.\" %ENDIF ENABLE_INITSCRIPT +.\" %ENDIF OS Cygwin +.\" %IF OS Windows +.PP +On Windows, the log messages are written to the event log or to a file. +See documentation of the \*(Aq\-l FACILITY\*(Aq option above for details. +.PP +On Windows, the following built-in commands can be used to control +\fBsmartd\fP, if running as a daemon: +.PP +\*(Aq\fBsmartd status\fP\*(Aq \- check status +.br +\*(Aq\fBsmartd stop\fP\*(Aq \- stop smartd +.br +\*(Aq\fBsmartd reload\fP\*(Aq \- reread config file +.br +\*(Aq\fBsmartd restart\fP\*(Aq \- restart smartd +.br +\*(Aq\fBsmartd sigusr1\fP\*(Aq \- check disks now +.br +\*(Aq\fBsmartd sigusr2\fP\*(Aq \- toggle debug mode +.PP +The Windows Version of \fBsmartd\fP has buildin support for services: +.PP +\*(Aq\fBsmartd install [options]\fP\*(Aq installs a service +named "smartd" (display name "SmartD Service") using the command line +\*(Aq/INSTALLPATH/smartd.exe \-\-service [options]\*(Aq. +This also installs smartd.exe as a event message file for the Windows +event viewer. +.PP +This does not work if the option \*(Aq--warn-as-user=restricted\*(Aq is +specified because the local \*(AqSYSTEM\*(Aq account cannot be restricted. +The service must then be manually reconfigured to run as a another user +which is a member of the local \*(AqAdministrator\*(Aq group. +.PP +\*(Aq\fBsmartd remove\fP\*(Aq can later be used to remove the service and +event message entries from the registry. +.PP +Upon startup, the smartd service changes the working directory +to its own installation path. If smartd.conf and blat.exe are stored +in this directory, no \*(Aq\-c\*(Aq option and \*(Aq\-M exec\*(Aq directive +is needed. +.PP +The debug mode (\*(Aq\-d\*(Aq, \*(Aq\-q onecheck\*(Aq) does not work if +smartd is running as service. +.PP +The service can be controlled as usual with Windows commands \*(Aqnet\*(Aq +or \*(Aqsc\*(Aq (\*(Aq\fBnet start smartd\fP\*(Aq, +\*(Aq\fBnet stop smartd\fP\*(Aq). +.PP +Pausing the service (\*(Aq\fBnet pause smartd\fP\*(Aq) sets the interval +between disk checks (\*(Aq\-i N\*(Aq) to infinite. +.PP +Continuing the paused service (\*(Aq\fBnet continue smartd\fP\*(Aq) resets the +interval and rereads the configuration file immediately (like \fBSIGHUP\fP). +The \*(AqPARAMCHANGE\*(Aq service control command (\*(Aq\fBsc control smartd +paramchange\fP\*(Aq) has the same effect regardless of paused state. +.PP +Continuing a still running service (\*(Aq\fBnet continue smartd\fP\*(Aq without +preceding \*(Aq\fBnet pause smartd\fP\*(Aq) does not reread configuration but +checks disks immediately (like \fBSIGUSR1\fP). +.\" %ENDIF OS Windows +.Sp +.SH LOG TIMESTAMP TIMEZONE +When \fBsmartd\fP makes log entries, these are time-stamped. The time +stamps are in the computer's local time zone, which is generally set +using either the environment variable \*(Aq\fBTZ\fP\*(Aq or using a +time-zone file such as \fB/etc/localtime\fP. You may wish to change +the timezone while \fBsmartd\fP is running (for example, if you carry +a laptop to a new time-zone and don't reboot it). Due to a bug in the +\fBtzset\fP(3) function of many unix standard C libraries, the +time-zone stamps of \fBsmartd\fP might not change. For some systems, +\fBsmartd\fP will work around this problem \fIif\fP the time-zone is +set using \fB/etc/localtime\fP. The work-around \fIfails\fP if the +time-zone is set using the \*(Aq\fBTZ\fP\*(Aq variable (or a file that it +points to). +.Sp +.SH EXIT STATUS +The exit status (return value) of \fBsmartd\fP can have the following values: +.TP +.B 0: +Daemon startup successful, or \fBsmartd\fP was killed by a SIGTERM +(or in debug mode, a SIGQUIT). +.TP +.B 1: +Commandline did not parse. +.TP +.B 2: +There was a syntax error in the config file. +.TP +.B 3: +Forking the daemon failed. +.TP +.B 4: +Couldn't create PID file. +.TP +.B 5: +Config file does not exist (only returned in conjunction with the \*(Aq\-c\*(Aq +option). +.TP +.B 6: +Config file exists, but cannot be read. +.TP +.B 8: +\fBsmartd\fP +ran out of memory during startup. +.TP +.B 10: +An inconsistency was found in \fBsmartd\fP's internal data +structures. This should never happen. It must be due to either a +coding or compiler bug. \fIPlease\fP report such failures to +smartmontools developers, see REPORTING BUGS below. +.TP +.B 16: +A device explicitly listed in +.B /usr/local/etc/smartd.conf +can't be monitored. +.TP +.B 17: +\fBsmartd\fP +didn't find any devices to monitor. +.br +[NEW EXPERIMENTAL SMARTD 7.3 FEATURE] +This could be changed to \fB0\fP (success) with one of the +\*(Aq-q *nodev0*\*(Aq options, see above. +.TP +.B 254: +When in daemon mode, +\fBsmartd\fP +received a SIGINT or SIGQUIT. (Note that in debug mode, SIGINT has +the same effect as SIGHUP, and makes \fBsmartd\fP reload its +configuration file. SIGQUIT has the same effect as SIGTERM and causes +\fBsmartd\fP to exit with zero exit status. +.TP +.B 132 and above +\fBsmartd\fP +was killed by a signal that is not explicitly listed above. The exit +status is then 128 plus the signal number. For example if +\fBsmartd\fP +is killed by SIGKILL (signal 9) then the exit status is 137. +.Sp +.\" %IF NOT OS Windows +.SH FILES +.TP +.B /usr/local/sbin/smartd +full path of this executable. +.TP +.B /usr/local/etc/smartd.conf +configuration file (see \fBsmartd.conf\fP(5) man page). +.TP +.B /usr/local/etc/smartd_warning.sh +script run on warnings (see \*(Aq\-w\*(Aq option above and \*(Aq\-M exec\*(Aq +directive on \fBsmartd.conf\fP(5) man page). +.\" %IF ENABLE_SMARTDPLUGINDIR +.TP +.B /usr/local/etc/smartd_warning.d/ +plugin directory for smartd warning script (see \*(Aq\-m\*(Aq directive on +\fBsmartd.conf\fP(5) man page). +.\" %ENDIF ENABLE_SMARTDPLUGINDIR +.\" %IF ENABLE_DRIVEDB +.TP +.B /usr/local/var/lib/smartmontools/drivedb.h +drive database (see \*(Aq\-B\*(Aq option). +.\" %ENDIF ENABLE_DRIVEDB +.TP +.B /usr/local/etc/smart_drivedb.h +optional local drive database (see \*(Aq\-B\*(Aq option). +.Sp +.\" %ENDIF NOT OS Windows +.SH AUTHORS +\fBBruce Allen\fP (project initiator), +.br +\fBChristian Franke\fP (project manager, Windows port and all sort of things), +.br +\fBDouglas Gilbert\fP (SCSI subsystem), +.br +\fBVolker Kuhlmann\fP (moderator of support and database mailing list), +.br +\fBGabriele Pohl\fP (wiki & development team support), +.br +\fBAlex Samorukov\fP (FreeBSD port and more, new Trac wiki). +.PP +Many other individuals have made contributions and corrections, +see AUTHORS, ChangeLog and repository files. +.PP +The first smartmontools code was derived from the smartsuite package, +written by Michael Cornwell and Andre Hedrick. +.Sp +.SH REPORTING BUGS +To submit a bug report, create a ticket in smartmontools wiki: +.br +<\fBhttps://www.smartmontools.org/\fP>. +.br +Alternatively send the info to the smartmontools support mailing list: +.br +<\fBhttps://listi.jpberlin.de/mailman/listinfo/smartmontools-support\fB>. +.Sp +.SH SEE ALSO +\fBsmartd.conf\fP(5), \fBsmartctl\fP(8). +.\" %IF ENABLE_UPDATE_SMART_DRIVEDB +.br +\fBupdate-smart-drivedb\fP(8). +.\" %ENDIF ENABLE_UPDATE_SMART_DRIVEDB +.\" %IF ENABLE_SYSTEMD_NOTIFY +.br +\fBsystemd.exec\fP(5). +.\" %ENDIF ENABLE_SYSTEMD_NOTIFY +.Sp +.SH REFERENCES +Please see the following web site for more info: +<\fBhttps://www.smartmontools.org/\fP> +.PP +An introductory article about smartmontools is \fIMonitoring Hard +Disks with SMART\fP, by Bruce Allen, Linux Journal, January 2004, +pages 74\(en77. +See <\fBhttps://www.linuxjournal.com/article/6983\fP>. +.PP +If you would like to understand better how SMART works, and what it +does, a good place to start is with Sections 4.8 and 6.54 of the first +volume of the \*(AqAT Attachment with Packet Interface-7\*(Aq (ATA/ATAPI-7) +specification Revision 4b. This documents the SMART functionality which the +\fBsmartmontools\fP utilities provide access to. +.PP +The functioning of SMART was originally defined by the SFF-8035i +revision 2 and the SFF-8055i revision 1.4 specifications. These are +publications of the Small Form Factors (SFF) Committee. +.PP +Links to these and other documents may be found on the Links page of the +\fBsmartmontools\fP Wiki at <\fBhttps://www.smartmontools.org/wiki/Links\fP>. +.Sp +.SH PACKAGE VERSION +CURRENT_SVN_VERSION CURRENT_SVN_DATE CURRENT_SVN_REV +.br +$Id: smartd.8.in 5521 2023-07-24 16:44:49Z chrfranke $ |