Manpage of 'smartd' on UHLU - BSD System Documentation,
Programming Reference, Manual Pages and Source Code
All manual pages         All RFC pages
Common page
for smartd
Other pages
for smartd
More pages
containing smartd

Section 8 manual page or howto for 'smartd'  

SMARTD(8)			  2008/03/10			     SMARTD(8)



NAME
       smartd - SMART Disk Monitoring Daemon


SYNOPSIS
       smartd [options]


FULL PATH
       /usr/local/sbin/smartd


PACKAGE VERSION
       smartmontools-5.38 released 2008/03/10 at 10:44:07 GMT


DESCRIPTION
       smartd  is  a  daemon  that  monitors the Self-Monitoring, Analysis and
       Reporting Technology (SMART) system built into  many  ATA-3  and  later
       ATA, IDE and SCSI-3 hard 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 smartd is
       compatible with	ATA/ATAPI-7  and  earlier  standards  (see  REFERENCES
       below).

       smartd  will attempt to enable SMART monitoring on ATA devices (equiva-
       lent to smartctl -s on) and polls these and SCSI devices every 30  min-
       utes   (configurable),  logging	SMART  errors  and  changes  of  SMART
       Attributes via the SYSLOG interface.  The default  location  for  these
       SYSLOG notifications and warnings is /var/log/messages.	To change this
       default location, please see the  '-l'  command-line  option  described
       below.

       In addition to logging to a file, smartd 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 smartctl manual page and the smartmontools web  page/FAQ
       for further guidance.

       If  you send a USR1 signal to smartd it will immediately check the sta-
       tus of the disks, and then return to polling the disks  every  30  min-
       utes. See the '-i' option below for additional details.

       smartd  can  be	configured  at	start-up  using the configuration file
       /usr/local/etc/smartd.conf (Windows: ./smartd.conf).  If the configura-
       tion  file  is subsequently modified, smartd can be told to re-read the
       configuration file by sending it a HUP signal,  for  example  with  the
       command:
       killall -HUP smartd.
       (Windows: See NOTES below.)

       On  startup,  if smartd finds a syntax error in the configuration file,
       it will print an error message and then	exit.  However	if  smartd  is
       already running, then is told with a HUP signal to re-read the configu-
       ration 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  HUP  signal  had  never  been
       received.

       When  smartd  is running in debug mode, the INT signal (normally gener-
       ated from a shell with CONTROL-C) is treated in the same way as	a  HUP
       signal:	it  makes smartd reload its configuration file. To exit smartd
       use CONTROL-\ (Cygwin: 2x CONTROL-C, Windows: CONTROL-Break).

       On   startup,   in   the   absence   of	  the	 configuration	  file
       /usr/local/etc/smartd.conf,  the  smartd  daemon  first	scans  for all
       devices that support SMART.  The scanning is done as follows:

       LINUX:	Examine all entries "/dev/hd[a-t]" for	IDE/ATA  devices,  and

		"/dev/sd[a-z]" for SCSI devices.

       FREEBSD: Examine  all  entries  "/dev/ad[0-9]+" for IDE/ATA devices and

		"/dev/da[0-9]+" for SCSI devices.

       NETBSD/OPENBSD:

		Authoritative list of disk devices  is	obtained  from	sysctl
		'hw.disknames'.

       SOLARIS: Examine  all entries "/dev/rdsk/c?t?d?s?" for IDE/ATA and SCSI

		disk devices, and entries "/dev/rmt/*" for SCSI tape  devices.

       DARWIN:	The  IOService plane is scanned for ATA block storage devices.

       WINDOWS 9x/ME:

		Examine   all	 entries    "/dev/hd[a-d]"    (bitmask	  from
		"\\.\SMARTVSD")  for  IDE/ATA  devices.   Examine  all entries
		"/dev/scsi[0-9][0-f]" for SCSI devices on ASPI adapter 0-9, ID
		0-15.

       WINDOWS NT4/2000/XP/2003/Vista:

		Examine  all entries "/dev/sd[a-j]" ("\\.\PhysicalDrive[0-9]")
		for IDE/(S)ATA and SCSI disk devices

		If a 3ware 9000 controller is installed, examine  all  entries
		"/dev/sdX,N"  for  the first logical drive ('unit' "/dev/sdX")
		and all physical disks ('ports'  ",N")	detected  behind  this
		controller. Same for a second controller if present.

       CYGWIN:	See "WINDOWS NT4/2000/XP/2003/Vista" above.

       OS/2,eComStation:

		Use the form "/dev/hd[a-z]" for IDE/ATA devices.

       smartd  then  monitors  for all possible SMART errors (corresponding to
       the '-a' Directive in the configuration file;  see  CONFIGURATION  FILE
       below).


OPTIONS
       Long  options are not supported on all systems.	Use 'smartd -h' to see
       the available options.

       -c FILE, --configfile=FILE

	      Read smartd configuration Directives from FILE, instead of  from
	      the   default   location	 /usr/local/etc/smartd.conf  (Windows:
	      ./smartd.conf).  If FILE does not exist, then smartd will  print
	      an  error  message  and  exit  with  nonzero  status.  Thus, '-c
	      /usr/local/etc/smartd.conf' can be used to verify the  existence
	      of the default configuration file.

	      By  using  '-' for FILE, the configuration is read from standard
	      input. This is useful for commands like:
	      echo /dev/hdb -m user@home -M test | smartd -c - -q onecheck
	      to perform quick and simple checks without a configuration file.


       -d, --debug
	      Runs  smartd  in	"debug" mode. In this mode, it displays status
	      information to STDOUT rather than logging it to SYSLOG and  does
	      not  fork(2) into the background and detach from the controlling
	      terminal.  In this mode, smartd also prints more verbose	infor-
	      mation  about  what  it is doing than when operating in "daemon"
	      mode. In this mode, the QUIT signal (normally generated  from  a
	      terminal	with  CONTROL-C) makes smartd reload its configuration
	      file.  Please use CONTROL-\ to exit (Cygwin: 2x CONTROL-C,  Win-
	      dows: CONTROL-Break).

	      Windows  only:  The  "debug"  mode can be toggled by the command
	      smartd sigusr2. A new console for debug output  is  opened  when
	      debug mode is enabled.

       -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 also described later in
	      this man page. They may appear in the configuration file follow-
	      ing the device name.

       -h, --help, --usage
	      Prints usage message to STDOUT and exits.

       -i N, --interval=N
	      Sets the interval between disk checks to N seconds, where N is a
	      decimal integer.	The minimum allowed value is ten and the maxi-
	      mum  is  the largest positive integer that can be represented on
	      your system (often 2^31-1).  The default is 1800 seconds.

	      Note that the superuser can make smartd check the status of  the
	      disks  at any time by sending it the SIGUSR1 signal, for example
	      with the command:
	      kill -SIGUSR1 <pid>
	      where <pid> is the process id number of smartd.	One  may  also
	      use:
	      killall -USR1 smartd
	      for the same purpose.
	      (Windows: See NOTES below.)


       -l FACILITY, --logfacility=FACILITY
	      Uses  syslog  facility FACILITY to log the messages from smartd.
	      Here FACILITY is one of local0, local1, ..., local7,  or	daemon
	      [default].   If  this  command-line  option is not used, then by
	      default messages from smartd are logged to the facility  daemon.

	      If you would like to have smartd messages logged somewhere other
	      than the default /var/log/messages location, this can  typically
	      be accomplished with (for example) the following steps:

	      [1] Modify  the  script that starts smartd to include the smartd

		  command-line argument '-l local3'.  This tells smartd to log
		  its messages to facility local3.

	      [2] Modify  the  syslogd configuration file (typically /etc/sys-

		  log.conf) by adding a line of the form:
		  local3.* /var/log/smartd.log
		  This tells syslogd to log all  the  messages	from  facility
		  local3 to the designated file: /var/log/smartd.log.

	      [3] Tell syslogd to re-read its configuration file, typically by

		  sending the syslogd process a SIGHUP hang-up signal.

	      [4] Start (or restart) the smartd daemon.

	      For more detailed information, please refer to the man pages for
	      syslog.conf,  syslogd,  and syslog.  You may also want to modify
	      the log rotation configuration files;  see  the  man  pages  for
	      logrotate and examine your system's /etc/logrotate.conf file.

	      Cygwin:  Support	for  syslogd  as  described above is available
	      starting with Cygwin 1.5.15.  On older releases or if  no  local
	      syslogd  is  running,  the  '-l'	option has no effect.  In this
	      case, all syslog messages are written to Windows event log or to
	      file C:/CYGWIN_SYSLOG.TXT if the event log is not available.

	      Windows:	Some syslog functionality is implemented internally in
	      smartd as follows: If no '-l' option (or '-l daemon') is	speci-
	      fied,  messages  are  written  to  Windows  event log or to file
	      ./smartd.log if event log is not available (Win9x/ME  or	access
	      denied).	By  specifying other values of FACILITY, log output is
	      redirected as follows: '-l local0'  to  file  ./smartd.log,  '-l
	      local1'  to standard output (redirect with '>' to any file), '-l
	      local2'  to   standard   error,	'-l   local[3-7]':   to   file
	      ./smartd[1-5].log.

	      When  using  the	event  log, the enclosed utility syslogevt.exe
	      should be registered as an event message	file  to  avoid  error
	      messages	from  the  event  viewer. Use 'syslogevt -r smartd' to
	      register, 'syslogevt -u smartd' to  unregister  and  'syslogevt'
	      for more help.


       -n, --no-fork
	      Do  not  fork into background; this is useful when executed from
	      modern init methods like initng, minit or supervise.

	      On Cygwin, this allows running smartd as service via  cygrunsrv,
	      see NOTES below.

	      On  Windows,  this  option  is  not  available,  use '--service'
	      instead.


       -p NAME, --pidfile=NAME
	      Writes pidfile NAME containing  the  smartd  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 smartd is killed with a maskable	signal
	      then the pidfile is removed.

       -q WHEN, --quit=WHEN
	      Specifies  when,	if  ever, smartd should exit.  The valid argu-
	      ments are to this option are:

	      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.

	      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.

	      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.

	      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
	      /usr/local/etc/smartd.conf has errors, smartd will  continue  to
	      run, waiting to load a configuration file listing valid devices.

	      onecheck - Start smartd 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.

	      This last option is intended for 'distribution-writers' who want
	      to create automated scripts to determine whether or not to auto-
	      matically start up smartd after installing smartmontools.  After
	      starting	smartd	with  this  command-line option, the distribu-
	      tion's install scripts should wait a reasonable length  of  time
	      (say ten seconds).  If smartd has not exited with zero status by
	      that time, the script should send smartd a  SIGTERM  or  SIGKILL
	      and  assume  that smartd will not operate correctly on the host.
	      Conversely, if smartd exits with zero status, then it is safe to
	      run smartd in normal daemon mode. If smartd is unable to monitor
	      any devices or encounters other problems	then  it  will	return
	      with non-zero exit status.

	      showtests  -  Start smartd 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.

	      This option is intended to test whether the  '-s	REGEX'	direc-
	      tives  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.

       -r TYPE, --report=TYPE
	      Intended primarily to help smartmontools	developers  understand
	      the  behavior  of smartmontools on non-conforming or poorly-con-
	      forming hardware.  This option reports details of smartd	trans-
	      actions with the device.	The option can be used multiple times.
	      When used just once, it shows a record of the  ioctl()  transac-
	      tions  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:

	      ioctl - report all ioctl() transactions.

	      ataioctl - report only ioctl() transactions with ATA devices.

	      scsiioctl  - report only ioctl() transactions with SCSI devices.

	      Any argument may include a positive integer to specify the level
	      of  detail that should be reported.  The argument should be fol-
	      lowed by a comma then the integer with no spaces.  For  example,
	      ataioctl,2  The  default	level is 1, so '-r ataioctl,1' and '-r
	      ataioctl' are equivalent.


       --service
	      Cygwin and Windows only: Enables smartd to run as a Windows ser-
	      vice.

	      On  Cygwin, this option is kept for backward compatibility only.
	      It has the same effect as '-n, --no-fork', see above.

	      On Windows, this option enables  the  buildin  service  support.
	      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.


       -V, --version, --license, --copyright
	      Prints license, copyright, and CVS version information onto STD-
	      OUT and then exits. Please include this information if  you  are
	      reporting bugs, or have specific questions about the behavior of
	      smartd.


EXAMPLES
       smartd
       Runs the daemon in forked mode. This is the normal way to  run  smartd.
       Entries are logged to SYSLOG (by default /var/log/messages.)

       smartd -d -i 30
       Run  in foreground (debug) mode, checking the disk status every 30 sec-
       onds.

       smartd -q onecheck
       Registers devices, and checks the status of the devices	exactly  once.
       The  exit status (the bash $?  variable) will be zero if all went well,
       and nonzero if no devices were  detected  or  some  other  problem  was
       encountered.

       Note    that    smartmontools	provides    a	start-up   script   in
       /usr/local/etc/rc.d/init.d/smartd which is responsible for starting and
       stopping  the daemon via the normal init interface.  Using this script,
       you can start smartd by giving the command:
       /usr/local/etc/rc.d/init.d/smartd start
       and stop it by using the command:
       /usr/local/etc/rc.d/init.d/smartd stop

       If you want smartd to start running whenever your  machine  is  booted,
       this can be enabled by using the command:
       /sbin/chkconfig --add smartd
       and disabled using the command:
       /sbin/chkconfig --del smartd



CONFIGURATION FILE /usr/local/etc/smartd.conf
       In  the absence of a configuration file, under Linux smartd will try to
       open the 20 ATA devices /dev/hd[a-t] and the 26 SCSI devices /dev/sd[a-
       z].   Under  FreeBSD,  smartd will try to open all existing ATA devices
       (with entries in /dev) /dev/ad[0-9]+  and  all  existing  SCSI  devices
       /dev/da[0-9]+.	Under  NetBSD/OpenBSD,	smartd	will  try  to open all
       existing ATA devices (with entries  in  /dev)  /dev/wd[0-9]+c  and  all
       existing SCSI devices /dev/sd[0-9]+c.  Under Solaris smartd will try to
       open  all  entries  "/dev/rdsk/c?t?d?s?"  for  IDE/ATA  and  SCSI  disk
       devices, and entries "/dev/rmt/*" for SCSI tape devices.  Under Windows
       smartd  will  try  to  open  all  entries  "/dev/hd[a-j]"  ("\\.\Physi-
       calDrive[0-9]")	for  IDE/ATA devices on WinNT4/2000/XP, "/dev/hd[a-d]"
       (bitmask from "\\.\SMARTVSD") for IDE/ATA devices on  Win95/98/98SE/ME,
       and  "/dev/scsi[0-9][0-7]"  (ASPI adapter 0-9, ID 0-7) for SCSI devices
       on all versions of Windows.  Under Darwin, smartd  will	open  any  ATA
       block storage device.

       This  can  be  annoying if you have an ATA or SCSI device that hangs or
       misbehaves when receiving SMART commands.  Even if this causes no prob-
       lems,  you  may	be  annoyed  by the string of error log messages about
       block-major devices that can't be found, and SCSI devices that can't be
       opened.

       One  can  avoid	this  problem, and gain more control over the types of
       events  monitored  by  smartd,  by   using   the   configuration   file
       /usr/local/etc/smartd.conf.   This  file  contains a list of devices to
       monitor, with one device per line.  An example file  is	included  with
       the smartmontools distribution. You will find this sample configuration
       file in /usr/local/share/doc/smartmontools/. For security, the configu-
       ration  file  should  not be writable by anyone but root. The syntax of
       the file is as follows:

       o   There should be one device listed per line, although you  may  have

	   lines that are entirely comments or white space.

       o   Any text following a hash sign '#' and up to the end of the line is

	   taken to be a comment, and ignored.

       o   Lines may be continued by using a backslash '\' as  the  last  non-

	   whitespace or non-comment item on a line.

       o   Note: a line whose first character is a hash sign '#' is treated as

	   a white-space blank line, not as a non-existent line, and will  end
	   a continuation line.

       Here  is an example configuration file.	It's for illustrative purposes
       only; please don't copy it onto your system without reading to the  end
       of the DIRECTIVES Section below!

       ################################################
       # This is an example smartd startup config file
       # /usr/local/etc/smartd.conf for monitoring three
       # ATA disks, three SCSI disks, six ATA disks
       # behind two 3ware controllers, three SATA disks
       # directly connected to the highpoint rocket-
       # raid controller, two SATA disks connected to
       # the highpoint rocketraid controller via a pmport
       # device and one SATA disk.
       #
       # First ATA disk on two different interfaces. On
       # the second disk, start a long self-test every
       # Sunday between 3 and 4 am.
       #

	 /dev/hda -a -m admin@example.com,root@localhost
	 /dev/hdc -a -I 194 -I 5 -i 12 -s L/../../7/03
       #
       # SCSI disks. Send a TEST warning email to admin on
       # startup.
       #

	 /dev/sda
	 /dev/sdb -m admin@example.com -M test
       #
       # Strange device. It's SCSI. Start a scheduled
       # long self test between 5 and 6 am Monday/Thursday

	 /dev/weird -d scsi -s L/../../(1|4)/05
       #
       # An ATA disk may appear as a SCSI device to the
       # OS. If a SCSI to ATA Translation (SAT) layer
       # is between the OS and the device then this can be
       # flagged with the '-d sat' option. This situation
       # may become common with SATA disks in SAS and FC
       # environments.

	 /dev/sda -a -d sat
       #
       # Four ATA disks on a 3ware 6/7/8000 controller.
       # Start short self-tests daily between midnight and 1am,
       # 1-2, 2-3, and 3-4 am. Starting with the Linux 2.6
       # kernel series, /dev/sdX is deprecated in favor of
       # /dev/tweN. For example replace /dev/sdc by /dev/twe0
       # and /dev/sdd by /dev/twe1.

	 /dev/sdc -d 3ware,0 -a -s S/../.././00
	 /dev/sdc -d 3ware,1 -a -s S/../.././01
	 /dev/sdd -d 3ware,2 -a -s S/../.././02
	 /dev/sdd -d 3ware,3 -a -s S/../.././03
       #
       # Two ATA disks on a 3ware 9000 controller.
       # Start long self-tests Sundays between midnight and
       # 1am and 2-3 am

	 /dev/twa0 -d 3ware,0 -a -s L/../../7/00
	 /dev/twa0 -d 3ware,1 -a -s L/../../7/02
       #
       # Three SATA disks on a highpoint rocketraid controller.
       # Start short self-tests daily between 1-2, 2-3, and
       # 3-4 am.

	 /dev/sde -d hpt,1/1 -a -s S/../.././01
	 /dev/sde -d hpt,1/2 -a -s S/../.././02
	 /dev/sde -d hpt,1/3 -a -s S/../.././03
       #
       # Two SATA disks connected to a highpoint rocketraid
       # via a pmport device. Start long self-tests Sundays
       # between midnight and 1am and 2-3 am.

	 /dev/sde -d hpt,1/4/1 -a -s L/../../7/00
	 /dev/sde -d hpt,1/4/2 -a -s L/../../7/02
       #
       # The following line enables monitoring of the
       # ATA Error Log and the Self-Test Error Log.
       # It also tracks changes in both Prefailure
       # and Usage Attributes, apart from Attributes
       # 9, 194, and 231, and shows continued lines:
       #

	 /dev/hdd -l error \
		  -l selftest \
		  -t \	    # Attributes not tracked:
		  -I 194 \  # temperature
		  -I 231 \  # also temperature
		  -I 9	    # power-on hours
       #
       ################################################



CONFIGURATION FILE DIRECTIVES
       If  the	first  non-comment entry in the configuration file is the text
       string DEVICESCAN in capital  letters,  then  smartd  will  ignore  any
       remaining  lines  in the configuration file, and will scan for devices.
       DEVICESCAN may optionally be followed by Directives that will apply  to
       all  devices  that  are	found in the scan.  Please see below for addi-
       tional details.



       The following are the Directives that may appear following  the	device
       name  or  DEVICESCAN on any line of the /usr/local/etc/smartd.conf con-
       figuration file. Note that  these  are  NOT  command-line  options  for
       smartd.	 The  Directives  below may appear in any order, following the
       device name.

       For an ATA device, if no Directives appear, then  the  device  will  be
       monitored  as  if the '-a' Directive (monitor all SMART properties) had
       been given.

       If a SCSI disk is listed, it will be monitored at  the  maximum	imple-
       mented  level: roughly equivalent to using the '-H -l selftest' options
       for an ATA disk.  So with the exception of '-d', '-m',  '-l  selftest',
       '-s',  and  '-M', the Directives below are ignored for SCSI disks.  For
       SCSI disks, the '-m' Directive sends a warning email if the SMART  sta-
       tus indicates a disk failure or problem, if the SCSI inquiry about disk
       status fails, or if new errors appear in the self-test log.

       If a 3ware controller is used then the corresponding SCSI (/dev/sd?) or
       character  device  (/dev/twe?  or /dev/twa?) must be listed, along with
       the '-d 3ware,N' Directive  (see  below).   The	individual  ATA  disks
       hosted  by the 3ware controller appear to smartd as normal ATA devices.
       Hence all the ATA directives can be used for these disks (but see  note
       below).


       -d TYPE
	      Specifies  the  type  of the device.  This Directive may be used
	      multiple times for one device, but the arguments ata, scsi, sat,
	      marvell,	cciss,N  and  3ware,N  are mutually-exclusive. If more
	      than one is given then  smartd  will  use  the  last  one  which
	      appears.

	      If  none	of  these  three  arguments is given, then smartd will
	      first attempt to guess the device type by looking at whether the
	      sixth  character	in  the device name is an 's' or an 'h'.  This
	      will work for device names like /dev/hda or /dev/sdb, and corre-
	      sponds  to  choosing  ata  or scsi respectively. If smartd can't
	      guess from this sixth character, then  it  will  simply  try  to
	      access the device using first ATA and then SCSI ioctl()s.

	      The valid arguments to this Directive are:

	      ata - the device type is ATA.  This prevents smartd from issuing
	      SCSI commands to an ATA device.

	      scsi - the device type is SCSI.  This prevents smartd from issu-
	      ing ATA commands to a SCSI device.

	      sat  - the device type is SCSI to ATA Translation (SAT).	smartd
	      will generate ATA (smart) commands and then package them in  the
	      SAT  defined  ATA  PASS  THROUGH SCSI commands. The commands are
	      then routed through the SCSI pass through interface to the oper-
	      ating  system. There are two types of ATA PASS THROUGH SCSI com-
	      mands: a 12 byte and 16 byte variant.  smartd can use either and
	      defaults	to  the  16  byte variant. This can be overridden with
	      this syntax: '-d sat,12' or '-d sat,16'.

	      marvell - Under Linux, interact with SATA disks  behind  Marvell
	      chip-set	controllers  (using  the  Marvell  rather  than libata
	      driver).

	      3ware,N - the device consists of one or more ATA disks connected
	      to  a  3ware RAID controller. The non-negative integer N (in the
	      range from 0 to 31 inclusive) denotes which  disk  on  the  con-
	      troller is monitored.  In log files and email messages this disk
	      will be identified as 3ware_disk_XX with XX in the range from 00
	      to 31 inclusive.

	      This  Directive may at first appear confusing, because the 3ware
	      controller is a SCSI device (such as  /dev/sda)  and  should  be
	      listed  as such in the the configuration file.  However when the
	      '-d 3ware,N' Directive is used, then the corresponding  disk  is
	      addressed  using	native ATA commands which are 'passed through'
	      the SCSI driver. All ATA Directives listed in this man page  may
	      be used.	Note that while you may use any of the 3ware SCSI log-
	      ical devices /dev/sd? to	address  any  of  the  physical  disks
	      (3ware  ports),  error and log messages will make the most sense
	      if you always list the 3ware SCSI logical  device  corresponding
	      to  the  particular physical disks.  Please see the smartctl man
	      page for further details.

	      ATA disks behind 3ware controllers may alternatively be accessed
	      via   a	character   device   interface	 /dev/twe0-15	(3ware
	      6000/7000/8000 controllers) and /dev/twa0-15 (3ware 9000	series
	      controllers).  Note that the 9000 series controllers may only be
	      accessed using the character device interface  /dev/twa0-15  and
	      not the SCSI device interface /dev/sd?.  Please see the smartctl
	      man page for further details.

	      Note  that  older  3w-xxxx  drivers  do  not  pass  the  'Enable
	      Autosave'  (-S  on)  and 'Enable Automatic Offline' (-o on) com-
	      mands to the disk, if the SCSI interface is  used,  and  produce
	      these types of harmless syslog error messages instead: '3w-xxxx:
	      tw_ioctl(): Passthru size (123392) too big'. This can  be  fixed
	      by  upgrading  to  version  1.02.00.037  or later of the 3w-xxxx
	      driver,  or  by  applying  a  patch  to  older  versions.    See
	      http://smartmontools.sourceforge.net/  for instructions.	Alter-
	      natively use the character device interfaces /dev/twe0-15 (3ware
	      6/7/8000	series controllers) or /dev/twa0-15 (3ware 9000 series
	      controllers).

	      cciss,N - the device consists of one or  more  SCSI  disks  con-
	      nected  to  a  cciss RAID controller. The non-negative integer N
	      (in the range from 0 to 15 inclusive) denotes which disk on  the
	      controller  is  monitored.  In log files and email messages this
	      disk will be identified as cciss_disk_XX with XX	in  the  range
	      from 00 to 15 inclusive.

	      3ware  and  cciss controllers are currently ONLY supported under
	      Linux.

	      hpt,L/M/N - the device consists of one or more  ATA  disks  con-
	      nected  to  a HighPoint RocketRAID controller.  The integer L is
	      the controller id, the integer M is the channel number, and  the
	      integer  N  is the PMPort number if it is available. The allowed
	      values of L are from 1 to 4 inclusive, M are from 1 to 8	inclu-
	      sive and N from 1 to 4 if PMPort available.  And also these val-
	      ues are limited by the model of the  HighPoint  RocketRAID  con-
	      troller.	 In  log  files  and  email messages this disk will be
	      identified as hpt_X/X/X and X/X/X is the same as L/M/N, note  if
	      no N indicated, N set to the default value 1.

	      HighPoint  RocketRAID  controllers  are currently ONLY supported
	      under Linux.

	      removable - the device or its media is  removable.   This  indi-
	      cates  to  smartd  that  it should continue (instead of exiting,
	      which is the default behavior) if the device does not appear  to
	      be  present  when smartd is started.  This Directive may be used
	      in conjunction with the other '-d' Directives.


       -n POWERMODE[,q]
	      This 'nocheck' Directive is used to prevent a  disk  from  being
	      spun-up when it is periodically polled by smartd.

	      ATA disks have five different power states. In order of increas-
	      ing power  consumption  they  are:  'OFF',  'SLEEP',  'STANDBY',
	      'IDLE',  and 'ACTIVE'.  Typically in the OFF, SLEEP, and STANDBY
	      modes the disk's platters are  not  spinning.  But  usually,  in
	      response	to  SMART commands issued by smartd, the disk platters
	      are spun up.  So if this option is not used, then a  disk  which
	      is  in  a  low-power  mode  may  be  spun  up  and  put  into  a
	      higher-power mode when it is periodically polled by smartd.

	      Note that if the disk is in SLEEP mode when smartd  is  started,
	      then  it won't respond to smartd commands, and so the disk won't
	      be registered as a device for smartd to monitor. If a disk is in
	      any  other low-power mode, then the commands issued by smartd to
	      register the disk will probably cause it to spin-up.

	      The '-n' (nocheck)  Directive  specifies	if  smartd's  periodic
	      checks  should  still  be  carried  out  when the device is in a
	      low-power mode.  It may be used to prevent  a  disk  from  being
	      spun-up  by periodic smartd polling.  The allowed values of POW-
	      ERMODE are:

	      never - smartd will poll (check) the device  regardless  of  its
	      power  mode.  This  may  cause  a  disk which is spun-down to be
	      spun-up when smartd checks it.  This is the default behavior  if
	      the '-n' Directive is not given.

	      sleep - check the device unless it is in SLEEP mode.

	      standby  -  check  the  device  unless it is in SLEEP or STANDBY
	      mode.  In these modes most disks are not	spinning,  so  if  you
	      want  to	prevent  a laptop disk from spinning up each time that
	      smartd polls, this is probably what you want.

	      idle - check the device unless it is in SLEEP, STANDBY  or  IDLE
	      mode.  In the IDLE state, most disks are still spinning, so this
	      is probably not what you want.

	      When a self test is scheduled (see '-s'  Directive  below),  the
	      '-n' Directive is ignored, and all tests are carried out.

	      When  a  periodic  test  is  skipped,  smartd normally writes an
	      informal log message. The message can be suppressed by appending
	      the  option  ',q' to POWERMODE (like '-n standby,q').  This pre-
	      vents a laptop disk from spinning up due to this message.


       -T TYPE
	      Specifies how tolerant smartd should be of SMART	command  fail-
	      ures.  The valid arguments to this Directive are:

	      normal  -  do  not  try to monitor the disk if a mandatory SMART
	      command fails, but continue if an optional SMART command	fails.
	      This is the default.

	      permissive  - try to monitor the disk even if it appears to lack
	      SMART capabilities.  This may be required  for  some  old  disks
	      (prior  to  ATA-3  revision 4) that implemented SMART before the
	      SMART standards were incorporated into the ATA/ATAPI  Specifica-
	      tions.  This may also be needed for some Maxtor disks which fail
	      to comply with the ATA Specifications and don't  properly  indi-
	      cate support for error- or self-test logging.

	      [Please see the smartctl -T command-line option.]

       -o VALUE
	      Enables  or disables SMART Automatic Offline Testing when smartd
	      starts up and has no further effect.   The  valid  arguments  to
	      this Directive are on and off.

	      The  delay  between  tests  is vendor-specific, but is typically
	      four hours.

	      Note that SMART Automatic Offline Testing is not part of the ATA
	      Specification.   Please  see the smartctl -o command-line option
	      documentation for further information about this feature.

       -S VALUE
	      Enables or disables Attribute Autosave when smartd starts up and
	      has  no  further	effect.  The valid arguments to this Directive
	      are on and off.  Also affects SCSI  devices.   [Please  see  the
	      smartctl -S command-line option.]

       -H     Check  the  SMART  health status of the disk.  If any Prefailure
	      Attributes are less than or equal  to  their  threshold  values,
	      then disk failure is predicted in less than 24 hours, and a mes-
	      sage at  loglevel  'LOG_CRITICAL'  will  be  logged  to  syslog.
	      [Please see the smartctl -H command-line option.]

       -l TYPE
	      Reports  increases  in  the  number  of errors in one of the two
	      SMART logs.  The valid arguments to this Directive are:

	      error - report if the number of ATA errors reported in  the  ATA
	      Error Log has increased since the last check.

	      selftest	- report if the number of failed tests reported in the
	      SMART Self-Test Log has increased since the last	check,	or  if
	      the  timestamp  associated  with the most recent failed test has
	      increased.  Note that such errors will only be logged if you run
	      self-tests  on  the disk (and it fails a test!).	Self-Tests can
	      be run automatically by smartd: please see  the  '-s'  Directive
	      below.   Self-Tests  can	also  be  run  manually  by  using the
	      '-t short' and '-t long' options of smartctl and the results  of
	      the  testing  can  be  observed using the smartctl '-l selftest'
	      command-line option.]

	      [Please see the smartctl -l and -t command-line options.]

       -s REGEXP
	      Run Self-Tests or Offline Immediate Tests, at  scheduled	times.
	      A  Self-	or  Offline  Immediate	Test will be run at the end of
	      periodic device polling, if all  12  characters  of  the	string
	      T/MM/DD/d/HH match the extended regular expression REGEXP. Here:

	      T   is the type of the test.  The values that smartd will try to

		  match  (in  turn)  are:  'L' for a Long Self-Test, 'S' for a
		  Short Self-Test, 'C' for a Conveyance Self-Test (ATA	only),
		  and  'O'  for an Offline Immediate Test (ATA only).  As soon
		  as a match is found, the test will be started and  no  addi-
		  tional  matches  will  be  sought  for  that device and that
		  polling cycle.

	      MM  is the month of the year, expressed with two decimal digits.

		  The  range  is from 01 (January) to 12 (December) inclusive.
		  Do not use a single decimal digit or the match  will	always
		  fail!

	      DD  is  the day of the month, expressed with two decimal digits.

		  The range is from 01 to 31 inclusive.  Do not use  a	single
		  decimal digit or the match will always fail!

	      d   is  the  day	of the week, expressed with one decimal digit.

		  The range is from 1 (Monday) to 7 (Sunday) inclusive.

	      HH  is the hour of the day, written with two decimal digits, and

		  given in hours after midnight.  The range is 00 (midnight to
		  just before 1am) to 23 (11pm to just before midnight) inclu-
		  sive.   Do  not use a single decimal digit or the match will
		  always fail!

	      Some examples follow.  In reading these, keep in	mind  that  in
	      extended	regular expressions a dot '.' matches any single char-
	      acter, and a parenthetical expression such as '(A|B|C)'  denotes
	      any one of the three possibilities A, B, or C.

	      To schedule a short Self-Test between 2-3am every morning, use:
	       -s S/../.././02

	      To schedule a long Self-Test between 4-5am every Sunday morning,
	      use:
	       -s L/../../7/04

	      To schedule a long Self-Test between 10-11pm on  the  first  and
	      fifteenth day of each month, use:
	       -s L/../(01|15)/./22

	      To schedule an Offline Immediate test after every midnight, 6am,
	      noon,and 6pm, plus a Short Self-Test daily at 1-2am and  a  Long
	      Self-Test every Saturday at 3-4am, use:
	       -s (O/../.././(00|06|12|18)|S/../.././01|L/../../6/03)

	      Scheduled  tests	are  run  immediately following the regularly-
	      scheduled device polling, if the current local date,  time,  and
	      test  type,  match  REGEXP.   By default the regularly-scheduled
	      device  polling  occurs  every  thirty  minutes  after  starting
	      smartd.	Take  caution  if you use the '-i' option to make this
	      polling interval more than sixty minutes:  the  poll  times  may
	      fail  to	coincide  with	any of the testing times that you have
	      specified with REGEXP, and so the self tests may not take  place
	      as you wish.

	      Before running an offline or self-test, smartd checks to be sure
	      that a self-test is not already  running.   If  a  self-test  is
	      already  running, then this running self test will not be inter-
	      rupted to begin another test.

	      smartd will not attempt to run any type of test if another  test
	      was already started or run in the same hour.

	      To  avoid  performance  problems during system boot, smartd will
	      not attempt to run any scheduled tests following the very  first
	      device polling (unless '-q onecheck' is specified).

	      Each  time  a  test  is run, smartd will log an entry to SYSLOG.
	      You can use these or the '-q showtests' command-line  option  to
	      verify  that  you  constructed  REGEXP  correctly.  The matching
	      order (L before S before C before O) ensures  that  if  multiple
	      test  types are all scheduled for the same hour, the longer test
	      type has precedence.  This is usually the desired behavior.

	      Unix users: please beware that the rules	for  extended  regular
	      expressions  [regex(7)]  are  not  the  same  as	the  rules for
	      file-name pattern matching by the shell [glob(7)].  smartd  will
	      issue  harmless  informational  warning  messages  if it detects
	      characters in REGEXP that appear to indicate that you have  made
	      this mistake.


       -m ADD Send a warning email to the email address ADD if the '-H', '-l',
	      '-f', '-C', or '-O' Directives detect a failure or a new	error,
	      or  if  a  SMART	command to the disk fails. This Directive only
	      works in conjunction with these other Directives	(or  with  the
	      equivalent default '-a' Directive).

	      To prevent your email in-box from getting filled up with warning
	      messages, by default only a single warning will be sent for each
	      of the enabled alert types, '-H', '-l', '-f', '-C', or '-O' even
	      if more than one failure or error is detected or if the  failure
	      or error persists.  [This behavior can be modified; see the '-M'
	      Directive below.]

	      To send email to more than one user, please  use	the  following
	      "comma	  separated"	  form	    for      the      address:
	      user1@add1,user2@add2,...,userN@addN (with no spaces).

	      To test that email is being sent correctly, use  the  '-M  test'
	      Directive  described  below  to  send  one test email message on
	      smartd startup.

	      By default, email is sent using the  system  mail  command.   In
	      order  that smartd find the mail command (normally /bin/mail) an
	      executable named 'mail' must be in the  path  of	the  shell  or
	      environment from which smartd was started.  If you wish to spec-
	      ify an  explicit	path  to  the  mail  executable  (for  example
	      /usr/local/bin/mail)  or	a custom script to run, please use the
	      '-M exec' Directive below.

	      Note that by default under Solaris, in the  previous  paragraph,
	      'mailx'  and  '/bin/mailx'  are  used, since Solaris '/bin/mail'
	      does not accept a '-s' (Subject) command-line argument.

	      On Windows, the 'Blat' mailer (http://blat.sourceforge.net/)  is
	      used by default.	This mailer uses a different command line syn-
	      tax, see '-M exec' below.

	      Note also that there is a special argument <nomailer> which  can
	      be given to the '-m' Directive in conjunction with the '-M exec'
	      Directive. Please see below for an explanation of its effect.

	      If the mailer or the shell running it produces any STDERR/STDOUT
	      output,  then a snippet of that output will be copied to SYSLOG.
	      The remainder of	the  output  is  discarded.  If  problems  are
	      encountered  in sending mail, this should help you to understand
	      and fix them.  If you have mail problems, we  recommend  running
	      smartd  in  debug  mode  with the '-d' flag, using the '-M test'
	      Directive described below.

	      The following extension is available on Windows:	By  specifying
	      'msgbox'	as a mail address, a warning "email" is displayed as a
	      message box on the screen.  Using both 'msgbox' and regular mail
	      addresses  is  possible,	if  'msgbox'  is the first word in the
	      comma separated list.  With 'sysmsgbox', a system modal  (always
	      on  top) message box is used. If running as a service, a service
	      notification message box (always shown on current visible  desk-
	      top) is used.


       -M TYPE
	      These  Directives  modify the behavior of the smartd email warn-
	      ings enabled with the  '-m'  email  Directive  described	above.
	      These  '-M'  Directives  only  work in conjunction with the '-m'
	      Directive and can not be used without it.

	      Multiple -M Directives may be given.  If more than  one  of  the
	      following  three	-M  Directives	are given (example: -M once -M
	      daily) then the final one (in the example, -M daily) is used.

	      The valid arguments to the -M Directive are (one of the  follow-
	      ing three):

	      once - send only one warning email for each type of disk problem
	      detected.  This is the default.

	      daily - send additional warning reminder emails, once  per  day,
	      for each type of disk problem detected.

	      diminishing  -  send additional warning reminder emails, after a
	      one-day interval, then  a  two-day  interval,  then  a  four-day
	      interval, and so on for each type of disk problem detected. Each
	      interval is twice as long as the previous interval.

	      In addition, one may add zero or more of	the  following	Direc-
	      tives:

	      test - send a single test email immediately upon smartd startup.
	      This allows one to verify that  email  is  delivered  correctly.
	      Note  that  if this Directive is used, smartd will also send the
	      normal email warnings that were enabled with the '-m' Directive,
	      in addition to the single test email!

	      exec  PATH - run the executable PATH instead of the default mail
	      command, when smartd needs to send email.  PATH must point to an
	      executable binary file or script.

	      By  setting  PATH  to point to a customized script, you can make
	      smartd perform useful tricks when a  disk  problem  is  detected
	      (beeping	the  console,  shutting down the machine, broadcasting
	      warnings to all logged-in users, etc.)  But please  be  careful.
	      smartd  will block until the executable PATH returns, so if your
	      executable hangs,  then  smartd  will  also  hang.  Some	sample
	      scripts are included in /usr/local/share/doc/smartmontools/exam-
	      plescripts/.

	      The return status of the executable is  recorded	by  smartd  in
	      SYSLOG.  The  executable	is  not expected to write to STDOUT or
	      STDERR.  If it does, then this is interpreted as indicating that
	      something is going wrong with your executable, and a fragment of
	      this output is logged to SYSLOG to help you  to  understand  the
	      problem.	Normally, if you wish to leave some record behind, the
	      executable should send mail or write to a file or device.

	      Before running the executable, smartd sets a number of  environ-
	      ment variables.  These environment variables may be used to con-
	      trol  the  executable's  behavior.   The	environment  variables
	      exported by smartd are:

	      SMARTD_MAILER

		  is  set  to  the  argument of -M exec, if present or else to
		  'mail' (examples: /bin/mail, mail).

	      SMARTD_DEVICE

		  is set to the device path (examples: /dev/hda, /dev/sdb).

	      SMARTD_DEVICETYPE

		  is set to the  device  type  (possible  values:  ata,  scsi,
		  3ware,N,  hpt,L/M/N).   Here N=0,...,23 denotes the ATA disk
		  behind a 3ware RAID controller and L/M/N  denotes  the  SATA
		  disk behind a HighPoint RocketRAID controller.

	      SMARTD_DEVICESTRING

		  is  set to the device description.  For SMARTD_DEVICETYPE of
		  ata or scsi, this is the same as SMARTD_DEVICE.   For  3ware
		  RAID	  controllers,	  the	 form	 used	is   '/dev/sdc
		  [3ware_disk_01]'.  For HighPoint RocketRAID controller,  the
		  form	is  '/dev/sdd [hpt_1/1/1]'.  In these cases the device
		  string contains a space  and	is  NOT  quoted.   So  to  use
		  $SMARTD_DEVICESTRING	in  a  bash script you should probably
		  enclose it in double quotes.

	      SMARTD_FAILTYPE

		  gives the reason for the warning or message email.  The pos-
		  sible values that it takes and their meanings are:
		  EmailTest: this is an email test message.
		  Health:  the SMART health status indicates imminent failure.
		  Usage: a usage Attribute has failed.
		  SelfTest: the number of self-test failures has increased.
		  ErrorCount: the number of errors in the ATA  error  log  has
		  increased.
		  CurrentPendingSector:  one of more disk sectors could not be
		  read and are marked to be reallocated (replaced  with  spare
		  sectors).
		  OfflineUncorrectableSector:	during	off-line  testing,  or
		  self-testing, one or more disk sectors could not be read.
		  FailedHealthCheck: the SMART health status command failed.
		  FailedReadSmartData: the command  to	read  SMART  Attribute
		  data failed.
		  FailedReadSmartErrorLog: the command to read the SMART error
		  log failed.
		  FailedReadSmartSelfTestLog: the command to  read  the  SMART
		  self-test log failed.
		  FailedOpenDevice: the open() command to the device failed.

	      SMARTD_ADDRESS

		  is determined by the address argument ADD of the '-m' Direc-
		  tive.  If ADD is <nomailer>, then SMARTD_ADDRESS is not set.
		  Otherwise,  it  is  set to the comma-separated-list of email
		  addresses  given  by	the  argument  ADD,  with  the	commas
		  replaced  by	spaces	(example:admin@example.com  root).  If
		  more than one email address is given, then this string  will
		  contain  space characters and is NOT quoted, so to use it in
		  a bash script you may want to enclose it in double quotes.

	      SMARTD_MESSAGE

		  is set to the one sentence  summary  warning	email  message
		  string  from	smartd.   This	message  string contains space
		  characters and is NOT quoted. So to use $SMARTD_MESSAGE in a
		  bash script you should probably enclose it in double quotes.

	      SMARTD_FULLMESSAGE

		  is set to the contents of the entire email  warning  message
		  string  from smartd.	This message string contains space and
		  return  characters  and   is	 NOT   quoted.	 So   to   use
		  $SMARTD_FULLMESSAGE  in  a  bash  script you should probably
		  enclose it in double quotes.

	      SMARTD_TFIRST

		  is a text string giving the time and date at which the first
		  problem of this type was reported. This text string contains
		  space characters and no newlines, and  is  NOT  quoted.  For
		  example:
		  Sun Feb  9 14:58:19 2003 CST

	      SMARTD_TFIRSTEPOCH

		  is  an  integer,  which is the unix epoch (number of seconds
		  since Jan 1, 1970) for SMARTD_TFIRST.

	      The shell which is used to run  PATH  is	system-dependent.  For
	      vanilla  Linux/glibc  it's bash. For other systems, the man page
	      for popen(3) should say what shell is used.

	      If the '-m ADD' Directive is given with a normal	address  argu-
	      ment,  then  the	executable pointed to by PATH will be run in a
	      shell with STDIN receiving the body of the  email  message,  and
	      with the same command-line arguments:
	      -s "$SMARTD_SUBJECT" $SMARTD_ADDRESS
	      that would normally be provided to 'mail'.  Examples include:
	      -m user@home -M exec /bin/mail
	      -m admin@work -M exec /usr/local/bin/mailto
	      -m root -M exec /Example_1/bash/script/below

	      Note that on Windows, the syntax of the 'Blat' mailer is used:
	      - -q -subject "$SMARTD_SUBJECT" -to "$SMARTD_ADDRESS"

	      If  the  '-m  ADD'  Directive  is given with the special address
	      argument <nomailer> then the executable pointed to  by  PATH  is
	      run  in a shell with no STDIN and no command-line arguments, for
	      example:
	      -m <nomailer> -M exec /Example_2/bash/script/below
	      If the executable produces any STDERR/STDOUT output, then smartd
	      assumes  that  something	is  going wrong, and a snippet of that
	      output will be copied to SYSLOG.	The remainder of the output is
	      then discarded.

	      Some  EXAMPLES  of  scripts  that can be used with the '-M exec'
	      Directive are given below. Some sample scripts are also included
	      in /usr/local/share/doc/smartmontools/examplescripts/.


       -f     Check   for   'failure'  of  any	Usage  Attributes.   If  these
	      Attributes are less than or equal to the threshold, it does  NOT
	      indicate	imminent disk failure.	It "indicates an advisory con-
	      dition where the usage or age of the  device  has  exceeded  its
	      intended	design life period."  [Please see the smartctl -A com-
	      mand-line option.]

       -p     Report anytime that a Prefail Attribute has  changed  its  value
	      since  the  last check, 30 minutes ago. [Please see the smartctl
	      -A command-line option.]

       -u     Report anytime that a Usage  Attribute  has  changed  its  value
	      since  the  last check, 30 minutes ago. [Please see the smartctl
	      -A command-line option.]

       -t     Equivalent to turning on the two previous flags '-p'  and  '-u'.
	      Tracks  changes  in  all	device Attributes (both Prefailure and
	      Usage). [Please see the smartctl -A command-line option.]

       -i ID  Ignore device Attribute number ID when checking for  failure  of
	      Usage  Attributes.   ID  must  be a decimal integer in the range
	      from 1 to 255.  This Directive modifies the behavior of the '-f'
	      Directive and has no effect without it.

	      This  is	useful,  for  example, if you have a very old disk and
	      don't want to keep getting messages about the  hours-on-lifetime
	      Attribute  (usually  Attribute  9)  failing.  This Directive may
	      appear multiple times for a single device, if you want to ignore
	      multiple Attributes.

       -I ID  Ignore   device  Attribute  ID  when  tracking  changes  in  the
	      Attribute values.  ID must be a decimal  integer	in  the  range
	      from  1  to  255.   This	Directive modifies the behavior of the
	      '-p', '-u', and '-t' tracking Directives and has no effect with-
	      out one of them.

	      This  is useful, for example, if one of the device Attributes is
	      the disk temperature (usually Attribute 194 or 231). It's annoy-
	      ing  to  get  reports  each  time the temperature changes.  This
	      Directive may appear multiple times for a single device, if  you
	      want to ignore multiple Attributes.

       -r ID  When  tracking,  report the Raw value of Attribute ID along with
	      its (normally reported) Normalized value.  ID must be a  decimal
	      integer in the range from 1 to 255.  This Directive modifies the
	      behavior of the '-p', '-u', and '-t' tracking Directives and has
	      no effect without one of them.  This Directive may be given mul-
	      tiple times.

	      A common use of this Directive is to track the  device  Tempera-
	      ture (often ID=194 or 231).


       -R ID  When  tracking,  report  whenever  the Raw value of Attribute ID
	      changes.	(Normally smartd only tracks/reports  changes  of  the
	      Normalized  Attribute  values.)  ID must be a decimal integer in
	      the range from 1 to 255.	This Directive modifies  the  behavior
	      of  the  '-p',  '-u',  and  '-t'	tracking Directives and has no
	      effect without one of them.  This Directive may be given	multi-
	      ple times.

	      If  this	Directive  is given, it automatically implies the '-r'
	      Directive for the same Attribute, so that the Raw value  of  the
	      Attribute is reported.

	      A  common  use of this Directive is to track the device Tempera-
	      ture (often ID=194 or 231).  It is also useful for understanding
	      how  different  types  of  system behavior affects the values of
	      certain Attributes.


       -C ID  [ATA only] Report if the current number of  pending  sectors  is
	      non-zero.   Here	ID is the id number of the Attribute whose raw
	      value is the Current Pending Sector count.  The allowed range of
	      ID  is  0  to  255  inclusive.   To turn off this reporting, use
	      ID = 0.  If the -C ID option is not given, then it  defaults  to
	      -C 197 (since Attribute 197 is generally used to monitor pending
	      sectors).

	      A pending sector is a disk sector (containing 512 bytes of  your
	      data)  which the device would like to mark as ``bad" and reallo-
	      cate.  Typically this is because your  computer  tried  to  read
	      that sector, and the read failed because the data on it has been
	      corrupted and has inconsistent  Error  Checking  and  Correction
	      (ECC)  codes.   This is important to know, because it means that
	      there is some unreadable data on the disk.  The problem of  fig-
	      uring out what file this data belongs to is operating system and
	      file system specific.  You can typically	force  the  sector  to
	      reallocate  by  writing to it (translation: make the device sub-
	      stitute a spare good sector for the bad one) but at the price of
	      losing the 512 bytes of data stored there.


       -U ID  [ATA only] Report if the number of offline uncorrectable sectors
	      is non-zero.  Here ID is the id number of  the  Attribute  whose
	      raw  value  is  the  Offline  Uncorrectable  Sector  count.  The
	      allowed range of ID is 0 to 255 inclusive.   To  turn  off  this
	      reporting,  use  ID = 0.	If the -U ID option is not given, then
	      it defaults to -U 198 (since Attribute 198 is generally used  to
	      monitor offline uncorrectable sectors).


	      An  offline  uncorrectable sector is a disk sector which was not
	      readable during an off-line scan or a self-test.	This is impor-
	      tant  to know, because if you have data stored in this disk sec-
	      tor, and you need to read it, the read will  fail.   Please  see
	      the previous '-C' option for more details.


       -W DIFF[,INFO[,CRIT]]
	      Report  if  the current temperature had changed by at least DIFF
	      degrees since last report. Report or Warn if the temperature  is
	      greater  or  equal  than one of INFO or CRIT degrees Celsius. If
	      the limit CRIT is reached, a message with  loglevel  'LOG_CRITI-
	      CAL'  will  be logged to syslog and a warning email will be send
	      if '-m' is specified. If only the limit INFO is reached, a  mes-
	      sage with loglevel 'LOG_INFO' will be logged.

	      To  disable any of the 3 reports, set the corresponding limit to
	      0.  Trailing zero arguments may be omitted. By default, all tem-
	      perature reports are disabled ('-W 0').

	      To track temperature changes of at least 2 degrees, use:
	       -W 2

	      To log informal messages on temperatures of at least 40 degrees,
	      use:
	       -W 0,40

	      For warning  messages/mails  on  temperatures  of  at  least  45
	      degrees, use:
	       -W 0,0,45

	      To combine all of the above reports, use:
	       -W 2,40,45

	      For  ATA devices, smartd interprets Attribute 194 as Temperature
	      Celsius by default. This can be changed to Attribute 9 or 220 by
	      the drive database or by the '-v' directive, see below.


       -F TYPE
	      [ATA  only]  Modifies  the  behavior of smartd to compensate for
	      some known and understood device firmware bug.  The arguments to
	      this  Directive  are exclusive, so that only the final Directive
	      given is used.  The valid values are:

	      none - Assume that the device firmware obeys the ATA  specifica-
	      tions.   This  is the default, unless the device has presets for
	      '-F' in the device database.

	      samsung - In some Samsung disks (example: model SV4012H Firmware
	      Version:	RM100-08) some of the two- and four-byte quantities in
	      the SMART data structures are byte-swapped (relative to the  ATA
	      specification).	Enabling  this option tells smartd to evaluate
	      these quantities in byte-reversed order.	Some signs  that  your
	      disk  needs  this  option are (1) no self-test log printed, even
	      though you have run self-tests; (2) very large  numbers  of  ATA
	      errors reported in the ATA error log; (3) strange and impossible
	      values for the ATA error log timestamps.

	      samsung2 - In more recent Samsung disks (firmware revisions end-
	      ing in "-23") the number of ATA errors reported is byte swapped.
	      Enabling this option tells smartd to evaluate this  quantity  in
	      byte-reversed order.

	      samsung3	-  Some  Samsung disks (at least SP2514N with Firmware
	      VF100-37) report a self-test still in progress with 0% remaining
	      when the test was already completed. If this directive is speci-
	      fied, smartd will not skip the  next  scheduled  self-test  (see
	      Directive '-s' above) in this case.

	      Note  that  an explicit '-F' Directive will over-ride any preset
	      values for '-F' (see the '-P' option below).


	      [Please see the smartctl -F command-line option.]


       -v N,OPTION
	      Modifies the labeling for Attribute N, for disks which use  non-
	      standard	Attribute  definitions.   This is useful in connection
	      with the Attribute tracking/reporting Directives.

	      This Directive may appear multiple  times.  Valid  arguments  to
	      this Directive are:

	      9,minutes  - Raw Attribute number 9 is power-on time in minutes.
	      Its raw value will be displayed in the form 'Xh+Ym'.  Here X  is
	      hours,  and  Y  is  minutes  in  the range 0-59 inclusive.  Y is
	      always printed with two digits, for  example  '06'  or  '31'  or
	      '00'.

	      9,seconds  - Raw Attribute number 9 is power-on time in seconds.
	      Its raw value will be displayed in the form 'Xh+Ym+Zs'.  Here  X
	      is  hours,  Y  is  minutes in the range 0-59 inclusive, and Z is
	      seconds in the range 0-59 inclusive.  Y and Z are always printed
	      with two digits, for example '06' or '31' or '00'.

	      9,halfminutes  -	Raw  Attribute number 9 is power-on time, mea-
	      sured in units of 30 seconds.  This format is used by some  Sam-
	      sung  disks.   Its  raw  value  will  be	displayed  in the form
	      'Xh+Ym'.	Here X is hours, and Y is minutes in  the  range  0-59
	      inclusive.   Y  is  always  printed with two digits, for example
	      '06' or '31' or '00'.

	      9,temp - Raw Attribute number 9 is the disk temperature in  Cel-
	      sius.

	      192,emergencyretractcyclect  -  Raw  Attribute number 192 is the
	      Emergency Retract Cycle Count.

	      193,loadunload - Raw Attribute number 193 contains  two  values.
	      The  first is the number of load cycles.	The second is the num-
	      ber of unload cycles.  The difference between these  two	values
	      is  the  number of times that the drive was unexpectedly powered
	      off (also called an emergency unload). As a rule of  thumb,  the
	      mechanical  stress created by one emergency unload is equivalent
	      to that created by one hundred normal unloads.

	      194,10xCelsius - Raw Attribute number 194 is ten times the  disk
	      temperature  in  Celsius.   This	is  used by some Samsung disks
	      (example: model SV1204H with RK100-13 firmware).

	      194,unknown - Raw Attribute number 194 is NOT the disk  tempera-
	      ture,  and its interpretation is unknown. This is primarily use-
	      ful for the -P (presets) Directive.

	      198,offlinescanuncsectorct - Raw Attribute  number  198  is  the
	      Offline Scan UNC Sector Count.

	      200,writeerrorcount  -  Raw  Attribute  number  200 is the Write
	      Error Count.

	      201,detectedtacount - Raw Attribute number 201 is  the  Detected
	      TA Count.

	      220,temp	-  Raw Attribute number 220 is the disk temperature in
	      Celsius.

	      Note: a table of hard drive models, listing which Attribute cor-
	      responds	   to	  temperature,	   can	   be	  found    at:
	      http://www.guzu.net/linux/hddtemp.db

	      N,raw8 - Print the  Raw  value  of  Attribute  N	as  six  8-bit
	      unsigned	base-10 integers.  This may be useful for decoding the
	      meaning of the Raw value.  The form 'N,raw8' prints  Raw	values
	      for  ALL	Attributes  in	this  form.   The  form  (for example)
	      '123,raw8' only prints the Raw value for Attribute 123  in  this
	      form.

	      N,raw16  -  Print  the  Raw value of Attribute N as three 16-bit
	      unsigned base-10 integers.  This may be useful for decoding  the
	      meaning  of the Raw value.  The form 'N,raw16' prints Raw values
	      for ALL  Attributes  in  this  form.   The  form	(for  example)
	      '123,raw16'  only prints the Raw value for Attribute 123 in this
	      form.

	      N,raw48 - Print the  Raw	value  of  Attribute  N  as  a	48-bit
	      unsigned	base-10  integer.  This may be useful for decoding the
	      meaning of the Raw value.  The form 'N,raw48' prints Raw	values
	      for  ALL	Attributes  in	this  form.   The  form  (for example)
	      '123,raw48' only prints the Raw value for Attribute 123 in  this
	      form.


       -P TYPE
	      Specifies  whether smartd should use any preset options that are
	      available for this drive.  The valid arguments to this Directive
	      are:

	      use  -  use any presets that are available for this drive.  This
	      is the default.

	      ignore - do not use any presets for this drive.

	      show - show the presets listed for this drive in the database.

	      showall - show the presets that are available for all drives and
	      then exit.

	      [Please see the smartctl -P command-line option.]


       -a     Equivalent  to  turning on all of the following Directives: '-H'
	      to check the SMART health status, '-f'  to  report  failures  of
	      Usage (rather than Prefail) Attributes, '-t' to track changes in
	      both Prefailure and Usage Attributes,  '-l selftest'  to	report
	      increases  in  the number of Self-Test Log errors, '-l error' to
	      report increases in the number of ATA errors, '-C 197' to report
	      nonzero values of the current pending sector count, and '-U 198'
	      to report nonzero values of the offline pending sector count.

	      Note that -a is the default for ATA devices.  If none  of  these
	      other Directives is given, then -a is assumed.


       #      Comment: ignore the remainder of the line.

       \      Continuation  character:	if  this is the last non-white or non-
	      comment character on a line, then the following line is  a  con-
	      tinuation of the current one.

       If  you	are  not sure which Directives to use, I suggest experimenting
       for a few minutes with smartctl to see what  SMART  functionality  your
       disk(s)	support(s).   If you do not like voluminous syslog messages, a
       good choice of smartd configuration file Directives might be:
       -H -l selftest -l error -f.
       If you want more frequent information, use: -a.


       ADDITIONAL DETAILS ABOUT DEVICESCAN
	      If the first non-comment entry in the configuration file is  the
	      text  string  DEVICESCAN	in  capital  letters, then smartd will
	      ignore any remaining lines in the configuration file,  and  will
	      scan for devices.

	      If  DEVICESCAN  is  not  followed by any Directives, then smartd
	      will scan for both ATA and SCSI devices, and  will  monitor  all
	      possible SMART properties of any devices that are found.

	      DEVICESCAN  may  optionally be followed by any valid Directives,
	      which will be applied to all devices that are found in the scan.
	      For example
	      DEVICESCAN -m root@example.com
	      will  scan for all devices, and then monitor them.  It will send
	      one email warning per device for any problems that are found.
	      DEVICESCAN -d ata -m root@example.com
	      will do the same, but restricts the scan to ATA devices only.
	      DEVICESCAN -H -d ata -m root@example.com
	      will do the same, but only monitors the SMART health  status  of
	      the  devices,  (rather  than  the default -a, which monitors all
	      SMART properties).


       EXAMPLES OF SHELL SCRIPTS FOR '-M exec'
	      These are two examples of shell scripts that can	be  used  with
	      the '-M exec PATH' Directive described previously.  The paths to
	      these scripts and similar executables is the  PATH  argument  to
	      the '-M exec PATH' Directive.

	      Example  1:  This  script  is  for  use with '-m ADDRESS -M exec
	      PATH'.  It appends the output of smartctl -a to  the  output  of
	      the smartd email warning message and sends it to ADDRESS.

	      #! /bin/bash

	      # Save the email message (STDIN) to a file:
	      cat > /root/msg

	      # Append the output of smartctl -a to the message:
	      /usr/local/sbin/smartctl -a -d $SMART_DEVICETYPE $SMARTD_DEVICE >> /root/msg

	      # Now email the message to the user at address ADD:
	      /bin/mail -s "$SMARTD_SUBJECT" $SMARTD_ADDRESS < /root/msg

	      Example  2:  This  script is for use with '-m <nomailer> -M exec
	      PATH'. It warns all users about a disk problem,  waits  30  sec-
	      onds, and then powers down the machine.

	      #! /bin/bash

	      # Warn all users of a problem
	      wall 'Problem detected with disk: ' "$SMARTD_DEVICESTRING"
	      wall 'Warning message from smartd is: ' "$SMARTD_MESSAGE"
	      wall 'Shutting down machine in 30 seconds... '

	      # Wait half a minute
	      sleep 30

	      # Power down the machine
	      /sbin/shutdown -hf now

	      Some  example  scripts  are  distributed	with the smartmontools
	      package, in  /usr/local/share/doc/smartmontools/examplescripts/.

	      Please  note  that  these  scripts typically run as root, so any
	      files that they read/write should not be	writable  by  ordinary
	      users  or  reside  in directories like /tmp that are writable by
	      ordinary users and may expose your system to symlink attacks.

	      As previously described, if  the	scripts  write	to  STDOUT  or
	      STDERR,  this  is  interpreted  as  indicating that there was an
	      internal error within the script, and a snippet of STDOUT/STDERR
	      is logged to SYSLOG.  The remainder is flushed.



NOTES
       smartd  will  make  log	entries at loglevel LOG_INFO if the Normalized
       SMART Attribute values have changed, as reported using the '-t',  '-p',
       or '-u' Directives. For example:
       'Device: /dev/hda, SMART Attribute: 194 Temperature_Celsius changed from 94 to 93'
       Note  that in this message, the value given is the 'Normalized' not the
       'Raw' Attribute value (the disk temperature in this case  is  about  22
       Celsius).   The	'-R' and '-r' Directives modify this behavior, so that
       the information is printed with the Raw values as well, for example:
       'Device: /dev/hda, SMART Attribute: 194 Temperature_Celsius changed from 94 [Raw 22] to 93 [Raw 23]'
       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  '-v  Num,Descrip-
       tion' Directives described previously.

       Please see the smartctl manual page for further explanation of the dif-
       ferences between Normalized and Raw Attribute values.

       smartd will make log entries at loglevel LOG_CRIT if a SMART  Attribute
       has failed, for example:
       'Device: /dev/hdc, Failed SMART Attribute: 5 Reallocated_Sector_Ct'

	This  loglevel	is  used  for  reporting  enabled  by  the  '-H', -f',
       '-l selftest', and '-l error' Directives. Entries reporting failure  of
       SMART  Prefailure  Attributes should not be ignored: they mean that the
       disk is failing.  Use the smartctl utility to investigate.

       Under Solaris with the default /etc/syslog.conf configuration, messages
       below  loglevel LOG_NOTICE will not be recorded.  Hence all smartd mes-
       sages with loglevel LOG_INFO will be lost.  If  you  want  to  use  the
       existing  daemon  facility  to log all messages from smartd, you should
       change /etc/syslog.conf from:
	      ...;daemon.notice;...	   /var/adm/messages
       to read:
	      ...;daemon.info;...	   /var/adm/messages
       Alternatively, you can use a local facility to log messages: please see
       the smartd '-l' command-line option described above.

       On Cygwin and Windows, the log messages are written to the event log or
       to a file. See documentation of the  '-l  FACILITY'  option  above  for
       details.

       On  Windows,  the  following  built-in  commands can be used to control
       smartd, if running as a daemon:

       'smartd status' - check status

       'smartd stop' - stop smartd

       'smartd reload' - reread config file

       'smartd restart' - restart smartd

       'smartd sigusr1' - check disks now

       'smartd sigusr2' - toggle debug mode

       On WinNT4/2000/XP, smartd can also be run as a Windows service:


       The Cygwin Version of smartd can be run as a service via the  cygrunsrv
       tool.  The start-up script provides Cygwin-specific commands to install
       and remove the service:
       /usr/local/etc/rc.d/init.d/smartd install [options]
       /usr/local/etc/rc.d/init.d/smartd remove
       The service can be started and stopped by the start-up script as  usual
       (see EXAMPLES above).


       The Windows Version of smartd has buildin support for services:

       'smartd	install  [options]' installs a service named "smartd" (display
       name "SmartD Service") using the command line  '/installpath/smartd.exe
       --service [options]'.

       'smartd remove' can later be used to remove the service entry from reg-
       istry.

       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 '-c' option and '-M exec' directive is needed.

       The debug mode ('-d', '-q onecheck') does not work if smartd is running
       as service.

       The  service  can be controlled as usual with Windows commands 'net' or
       'sc' ('net start smartd', 'net stop smartd').

       Pausing the service ('net pause smartd') sets the interval between disk
       checks ('-i N') to infinite.

       Continuing the paused service ('net continue smartd') resets the inter-
       val and rereads the configuration file immediately (like SIGHUP):

       Continuing a still running service ('net continue smartd' without  pre-
       ceding  'net  pause  smartd')  does not reread configuration but checks
       disks immediately (like SIGUSR1).


LOG TIMESTAMP TIMEZONE
       When smartd 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 'TZ' or using a time-zone file such  as
       /etc/localtime.	 You  may  wish to change the timezone while smartd 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 tzset(3) function of many unix
       standard C libraries, the time-zone stamps of smartd might not  change.
       For some systems, smartd will work around this problem if the time-zone
       is set using /etc/localtime. The work-around fails if the time-zone  is
       set using the 'TZ' variable (or a file that it points to).



RETURN VALUES
       The return value (exit status) of smartd can have the following values:

       0:     Daemon startup successful, or smartd was killed by a SIGTERM (or
	      in debug mode, a SIGQUIT).

       1:     Commandline did not parse.

       2:     There was a syntax error in the config file.

       3:     Forking the daemon failed.

       4:     Couldn't create PID file.

       5:     Config  file  does  not exist (only returned in conjunction with
	      the '-c' option).

       6:     Config file exists, but cannot be read.

       8:     smartd ran out of memory during startup.

       9:     A compile time constant of smartd was too small.	 This  can  be
	      caused  by  an  excessive  number  of  disks,  or  by  lines  in
	      /usr/local/etc/smartd.conf that are  too	long.	Please	report
	      this problem to  smartmontools-support@lists.sourceforge.net.

       10     An inconsistency was found in smartd's internal data structures.
	      This should never happen.  It must be due to either a coding  or
	      compiler bug.  Please report such failures to smartmontools-sup-
	      port@lists.sourceforge.net.

       16:    A device explicitly listed in  /usr/local/etc/smartd.conf  can't
	      be monitored.

       17:    smartd didn't find any devices to monitor.

       254:   When in daemon mode, smartd received a SIGINT or SIGQUIT.  (Note
	      that in debug mode, SIGINT has the same effect  as  SIGHUP,  and
	      makes smartd reload its configuration file. SIGQUIT has the same
	      effect as SIGTERM and causes smartd to exit with zero exit  sta-
	      tus.

       132 and above
	      smartd  was  killed  by  a  signal that is not explicitly listed
	      above.  The exit status is then 128 plus the signal number.  For
	      example  if smartd is killed by SIGKILL (signal 9) then the exit
	      status is 137.



AUTHOR
       Bruce Allen smartmontools-support@lists.sourceforge.net

       University of Wisconsin - Milwaukee Physics Department



CONTRIBUTORS
       The following have made large contributions to smartmontools:
       Casper Dik (Solaris SCSI interface)
       Christian Franke (Windows interface and Cygwin package)
       Douglas Gilbert (SCSI subsystem)
       Guido Guenther (Autoconf/Automake packaging)
       Geoffrey Keating (Darwin ATA interface)
       Eduard Martinescu (FreeBSD interface)
       Frederic L. W. Meunier (Web site and Mailing list)
       Keiji Sawada (Solaris ATA interface)
       Sergey Svishchev (NetBSD interface)
       David Snyder and Sergey Svishchev (OpenBSD interface)
       Phil Williams (User interface and drive database)
       Shengfeng Zhou (Linux Highpoint RocketRaid interface)
       Many other individuals have made smaller contributions and corrections.



CREDITS
       This  code  was derived from the smartsuite package, written by Michael
       Cornwell, and from the previous ucsc  smartsuite  package.  It  extends
       these  to  cover  ATA-5	disks. This code was originally developed as a
       Senior Thesis by Michael Cornwell at the Concurrent Systems  Laboratory
       (now  part  of the Storage Systems Research Center), Jack Baskin School
       of    Engineering,    University    of	 California,	Santa	 Cruz.
       http://ssrc.soe.ucsc.edu/ .

HOME PAGE FOR SMARTMONTOOLS:
       Please  see  the following web site for updates, further documentation,
       bug reports and patches: http://smartmontools.sourceforge.net/


SEE ALSO:
       smartd.conf(5), smartctl(8), syslogd(8), syslog.conf(5),  badblocks(8),
       ide-smart(8), regex(7).


REFERENCES FOR SMART
       An  introductory  article  about smartmontools is Monitoring Hard Disks
       with SMART, by Bruce Allen, Linux Journal, January 2004,  pages	74-77.
       This is http://www.linuxjournal.com/article.php?sid=6983 online.

       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	'AT  Attachment with Packet Interface-7' (ATA/ATAPI-7)
       specification.  This documents the SMART functionality which the smart-
       montools utilities provide access to.  You can find Revision 4b of this
       document  at  http://www.t13.org/docs2004/d1532v1r4b-ATA-ATAPI-7.pdf  .
       Earlier and later versions of this Specification are available from the
       T13 web site http://www.t13.org/ .

       The functioning of SMART was originally defined by the SFF-8035i  revi-
       sion 2 and the SFF-8055i revision 1.4 specifications.  These are publi-
       cations of the Small Form Factors (SFF) Committee.  Links to these doc-
       uments may be found in the References section of the smartmontools home
       page at http://smartmontools.sourceforge.net/#references .


CVS ID OF THIS PAGE:
       $Id: smartd.8.in,v 1.121 2008/03/04 22:09:47 ballen4705 Exp $



smartmontools-5.38		  2008/03/10			     SMARTD(8)

NAME - SYNOPSIS - FULL PATH - PACKAGE VERSION - DESCRIPTION - OPTIONS - 
EXAMPLES - CONFIGURATION FILE /usr/local/etc/smartd.conf - CONFIGURATION FILE DIRECTIVES - 
NOTES - LOG TIMESTAMP TIMEZONE - RETURN VALUES - AUTHOR - CONTRIBUTORS - 
CREDITS - HOME PAGE FOR SMARTMONTOOLS: - SEE ALSO: - REFERENCES FOR SMART - 
CVS ID OF THIS PAGE: -  
All manual pages         All RFC pages
Common page
for smartd
Other pages
for smartd
More pages
containing smartd
A random manual page         All manual pages        All RFC pages