Man Linux: Main Page and Category List

NAME

       sg_ses  - send controls and fetch status from a SCSI Enclosure Services
       (SES) device

SYNOPSIS

       sg_ses [--byte1=B1] [--control]  [--data=H,H...]   [--filter]  [--help]
       [--hex]   [--inner-hex]   [--list]   [--page=PG]   [--raw]   [--status]
       [--verbose] [--version] DEVICE

DESCRIPTION

       Send controls to a SES device (via a SCSI SEND DIAGNOSTIC  command)  or
       fetches  status  (via  a SCSI RECEIVE DIAGNOSTIC RESULTS command).  The
       DEVICE should be a SES  device  which  may  be  a  dedicated  enclosure
       services  processor (INQUIRY peripheral device type 0xd) or attached to
       another type of SCSI device (e.g. a disk) in which case the EncServ bit
       set in its INQUIRY response.

       If  no options are given (only the DEVICE argument) then all diagnostic
       pages supported by the device (including SES pages) are listed.

       The most recent reference for this utility is the draft SCSI  Enclosure
       Services  3  document  T10/2149-D  Revision  2  at  http://ww.t10.org .
       Existing standards for SES and SES-2 are ANSI INCITS 305-1998 and  ANSI
       INCITS 448-2008 respectively.

OPTIONS

       Arguments to long options are mandatory for short options as well.  The
       options are arranged in alphabetical order based  on  the  long  option
       name.

       -b, --byte1=B1
              some control pages need byte 1 (i.e. the second byte) of the cdb
              set.  Only required in rare cases when the --control  option  is
              also  set.  Default is 0; B1 is in decimal unless it is prefixed
              by ’0x’ or ’0X’ (or has a trailing ’h’ or ’H’).

       -c, --control
              will send control information to the  DEVICE  via  a  SCSI  SEND
              DIAGNOSTIC  command.  Cannot give both this option and --status.
              The Enclosure control, String Out, Threshold Out, Array  control
              (obsolete in SES-2) and Subenclosure String Out diagnostic pages
              can be set currently.

       -d, --data=H,H...
              permits a string of comma separated  (ASCII)  hex  bytes  to  be
              specified  (limit 512). A (single) space separated string of hex
              bytes is also allowed but the list needs to be in  quotes.  This
              allows  the  parameters  to  a  control  diagnostic  page  to be
              specified. The string given should not include the first 4 bytes
              (i.e. page code and length). See next entry for using stdin.

       -d, --data=-
              reads  a  data  string  from  stdin. Spaces, tabs and line feeds
              additionally are permitted as separators.

       -f, --filter
              cuts down on the amount of  output  from  the  enclosure  status
              diagnostic  page.  When this option is given, any line which has
              all its binary flags cleared (i.e.  0)  is  filtered  out  (i.e.
              ignored).  If  a  line  has  some  other  value  on  it  (e.g. a
              temperature) then it is output.

       -h, --help
              output the usage message then exit.

       -H, --hex
              output the response in hexadecimal.

       -i, --inner-hex
              the outer levels of a status diagnostic  page  are  decoded  and
              printed  out  but  the  innermost level (e.g. the element status
              descriptor) is output in hex. Implemented for the  more  complex
              diagnostic pages.

       -l, --list
              list all known diagnostic page names and SES elements. DEVICE is
              ignored and utility exits.

       -p, --page=PG
              where PG is a  page  code.  Assumed  to  be  in  decimal  unless
              prefixed  by  0x  for hex. Valid range is 0 to 255 (0x0 to 0xff)
              inclusive. Default is page_code 0  (i.e.  "Supported  diagnostic
              pages").

       -r, --raw
              outputs  the  chosen  status  page  in  (ASCII)  hex in a format
              suitable for a later invocation  using  the  --data=  option.  A
              status  diagnostic  page  less  its first 4 bytes (page code and
              length) is output.  When used  twice  (e.g.  -rr)  outputs  full
              diagnostic page in binary to stdout.

       -s, --status
              will  fetch  status  diagnostic  page from the DEVICE via a SCSI
              RECEIVE DIAGNOSTIC RESULTS command. If this option is not  given
              and --control is not given then --status is assumed.

       -v, --verbose
              increase the level of verbosity, (i.e. debug output).

       -V, --version
              print the version string and then exit.

NOTES

       Currently  all status pages, control pages and element types defined in
       SES-2 revision 17 (14th May 2007) are decoded.

       This utility can be used to fetch arbitrary (i.e. non  SES)  diagnostic
       pages  (using  the  SCSI  READ  DIAGNOSTIC  command).  To  this end the
       --page=PG and --hex options would be appropriate. Arbitrary  diagnostic
       pages can be sent to a device with the sg_senddiag utility.

       There   is   a   related  command  set  called  SAF-TE  (SCSI  attached
       fault-tolerant enclosure) for enclosure  (including  RAID)  status  and
       control. SCSI devices that support SAF-TE report "Processor" peripheral
       device type (0x3) in their INQUIRY response. See the  sg_safte  utility
       in this package or safte-monitor on the internet.

EXAMPLES

       To view the supported pages:

          sg_ses /dev/sda

       To view the configuration page:

          sg_ses --page=1 /dev/sda

       To view the status page:

          sg_ses --page=2 /dev/sda

       Changing  a temperature threshold is possible, if a little awkward. The
       current thresholds can be shown with:

          sg_ses --page=5 /dev/sda

       The threshold to be changed can be chosen. Then  output  the  threshold
       page in hex (suitable for editing) with:

          sg_ses --page=5 --raw /dev/sda > t

       Then  with the aid of the SES-2 document (in revision 9: section 6.1.8)
       use your favourite editor to change t. The change can be  sent  to  the
       device with:

          sg_ses --control --page=5 --data=- /dev/sda < t

       If  the above is successful, the threshold should have been changed. To
       check try:

          sg_ses --page=5 /dev/sda

       again.

EXIT STATUS

       The exit status of sg_ses is 0 when it is successful. Otherwise see the
       sg3_utils(8) man page.

AUTHORS

       Written by Douglas Gilbert.

REPORTING BUGS

       Report bugs to <dgilbert at interlog dot com>.

COPYRIGHT

       Copyright © 2004-2010 Douglas Gilbert
       This  software  is  distributed  under  a  FreeBSD license. There is NO
       warranty; not even for MERCHANTABILITY  or  FITNESS  FOR  A  PARTICULAR
       PURPOSE.

SEE ALSO

       sg_inq,  sg_safte,  sg_senddiag  (in  sg3_utils package); safte-monitor
       (internet)