SG_LOGS(8) SG3_UTILS SG_LOGS(8)
NAME
sg_logs - access log pages with SCSI LOG SENSE command
SYNOPSIS
sg_logs [--All] [--all] [--brief] [--filter=FL] [--hex] [--list] [--maxlen=LEN] [--name]
[--no_inq] [--page=PG] [--paramp=PP] [--pcb] [--ppc] [--pdt=DT] [--raw] [--readonly]
[--sp] [--temperature] [--transport] [--vendor=VP] [--verbose] DEVICE
sg_logs [--brief] [--filter=FL] [--hex] --in=FN [--name] [--pdt=DT] [--raw] [--vendor=VP]
sg_logs [--control=PC] [--in=FN] [--page=PG] [--raw] [--reset] --select [--sp] [--verbose]
DEVICE
sg_logs [--enumerate] [--filter=FL] [--help] [--vendor=VP] [--version]
sg_logs [-a] [-A] [-b] [-D=DT] [-c=PC] [-e] [-f=FL] [-h] [-H] [-i=FN] [-l] [-L] [-m=LEN]
[-M=VP] [-n] [-p=PG] [-paramp=PP] [-pcb] [-ppc] [-r] [-R] [-select] [-sp] [-t] [-T] [-v]
[-V] [-?] [-x] DEVICE
DESCRIPTION
This utility sends a SCSI LOG SENSE command to the DEVICE and then outputs the response.
The LOG SENSE command is used to fetch log pages which, if known, are decoded by default.
When the --reset and/or --select option is given then a SCSI LOG SELECT command is issued
to the DEVICE. Alternatively one or more log page responses can be in a file read using
the --in=FN option; in this case those responses are decoded and the DEVICE argument, if
given, is ignored.
In SPC-4 revision 5 a subpage code was introduced to both the LOG SENSE and LOG SELECT
command. At the same time a page code field was introduced to the to the LOG SELECT com-
mand. The log subpage code can range from 0 to 255 (0xff) inclusive. The subpage code
value 255 can be thought of as a wildcard.
The SYNOPSIS section above is divided into five forms. The first form shows the options
that can be used to send a LOG SENSE command to the DEVICE and decode its response. The
second form fetches data from a file (named FN) and decodes it as if it were a response
from a LOG SENSE command. The third form shows the options that can be used to send a LOG
SELECT command. The fourth form groups various management options. The last form shows
the older, deprecated command line interface which is maintained for backward compatibil-
ity.
OPTIONS
Arguments to long options are mandatory for short options as well. The options are ar-
ranged in alphabetical order based on the long option name.
-A, --All
fetch and decode all the log pages and subpages supported by the DEVICE. This re-
quires a two stage process: first the "supported log pages and subpages" log page
is fetched, then for each entry in its response, the corresponding log page (or
subpage) is fetched and displayed. Note that there are many SCSI devices that do
not support LOG SENSE subpages and respond to this option with an illegal request
sense key (or ignored the subpage field).
-a, --all
outputs all the log pages supported by the DEVICE. This requires a two stage
process: first the "supported log pages" log page is fetched, then for each entry
in its response, the corresponding log page is fetched and displayed. When used
twice (e.g. '-aa') all log pages and subpages are fetched.
-b, --brief
shorten the amount of output for some log pages. For example the Tape Alert log
page only outputs parameters whose flags are set when --brief is given.
-c, --control=PC
accepts 0, 1, 2 or 3 for the PC argument:
0 : current threshold values
1 : current cumulative values
2 : default threshold values
3 : default cumulative values
The default value is 1 (i.e. current cumulative values).
-e, --enumerate
this option is used to output information held in this utility's internal tables
about known log pages including their name, acronym and fields. If given, the DE-
VICE argument is ignored. When given once (e.g. '-e') all known pages are listed,
sorted in ascending alphabetical acronym order.
When given twice, vendor pages are excluded. When given three times, all known
pages are listed, sorted in ascending numeric order listed; when given four times,
vendor pages are excluded from the numeric order.
The --filter=FL and --verbose options reduce the output of the enumeration.
-f, --filter=FL
FL is either a parameter code when DEVICE is given, or a peripheral device type
(pdt) (or other) if --enumerate is given.
In the parameter code case FL is a value between 0 and 65535 (0xffff) and only the
parameter section matching that code is output. If the --hex option is given the
log parameter is output in hexadecimal rather than decoding it. If the --hex option
is used twice then the leading address on each line of hex is removed. If the --raw
option is given then the log parameter is output in binary. Most log pages contain
one or more log parameters. Examples of those that don't follow that convention are
those pages that list supported log pages (and subpages).
In the --enumerate case, when FL >= zero it is taken as a pdt value and only log
pages associated with that pdt plus generic pages listed in SPC are enumerated. If
FL is -1 then the filter does nothing which is the same as not giving this option;
when FL is -2 then only generic pages listed in SPC are enumerated. If FL is -10
then only generic direct access like (e.g. disk) pages are enumerated. If FL is -11
then only generic tape like pages (e.g. includes ADC) are enumerated.
-h, --help
print out the usage message then exit.
-H, --hex
The default action is to decode known log page numbers (and subpage numbers) into
text. When this option is used once, the response is output in hexadecimal. When
used twice, each line of hex has the ASCII equivalent shown to the right. When used
three times, the hex has no leading address nor trailing ASCII making it suitable
to be placed in a file (or piped). That file might later be used by another invoca-
tion using the --in=FN option.
-i, --in=FN
This option may be used in two different contexts. One is with the --select to send
a LOG SELECT command to the given DEVICE; see the LOG SELECT section below.
The other context is with no DEVICE argument given in which case the contents of FN
are decoded as if it were the response of a LOG SENSE command (i.e. a log page).
For decoding the page and subpage numbers are taken from FN while the peripheral
device type is either generic (i.e. from SPC) or the value given by --pdt=DT.
FN is treated as a file name (or '-' for stdin) which contains ASCII hexadecimal or
binary representing a log page. The hexadecimal should be arranged as 1 or 2 digits
representing a byte each of which is whitespace or comma separated. Anything from
and including a hash mark to the end of line is ignored. If the --raw option is
also given then FN is treated as binary.
-l, --list
lists the names of all logs sense pages supported by this device. This is done by
reading the "supported log pages" log page. When used twice (e.g. '-ll') lists the
names of all logs sense pages and subpages supported by this device, excluding
pages whose subpage number is 0xff (apart from page 0x0,0xff). When used three
times then all supported pages and subpages reported by the device are list. So the
page/subpage names and not thrie content is shown with this option. There is a list
of common log page codes below.
-m, --maxlen=LEN
sets the "allocation length" field in the LOG SENSE cdb. The is the maximum length
in bytes that the response will be. Without this option (or LEN equal to 0) this
utility first fetches the 4 byte response then does a second access with the length
indicated in the first (4 byte) response. Negative values and 1 for LEN are not ac-
cepted. LEN cannot exceed 65535 (0xffff). Responses can be quite large (e.g. the
background scan results log page) and this option can be used to limit the amount
of information returned.
-n, --name
decode some log pages into 'name=value' entries, one per line. The name contains no
space and may be abbreviated and the value is decimal unless prefixed by '0x'.
Nesting is indicated by leading spaces. This form is meant to be relatively easy to
parse.
-x, --no_inq
suppresses the output of information obtained from an initial call to the INQUIRY
command for the standard response. The default (assuming some other options that
suppress this output are also not given) is to output several device identification
strings.
If this option is given twice (or more) then no INQUIRY command is sent hence there
will be no device identification string output either. Also the peripheral device
type (PDT) field will not be obtained so this utility will not be able to differen-
tiate between some log pages that are device dependent. It will assume a PDT of 0
(i.e. a disk).
-O, --old
Switch to older style options. Please use as first option.
-p, --page=PG
log page name/number to access. PG is either an acronym, a page number, or a page,
subpage number pair. Available acronyms can be listed with the --enumerate option.
Page (0 to 63) and subpage (0 to 255) numbers are comma separated. They are decimal
unless a hexadecimal indication is given. A hexadecimal number can be specified by
a leading "0x" or a trailing "h".
A few acronyms specify a range of subpage values in which case the acronym may be
followed by a comma then a subpage number. This method can also be used to fetch
the Supported subpages log page (e.g. --page=temp,0xff).
-P, --paramp=PP
PP is the parameter pointer value to place in a field of that name in the LOG SENSE
cdb. A decimal number in the range 0 to 65535 (0xffff) is expected. When a value
greater than 0 is given the --ppc option should be selected. The default value is
0.
-q, --pcb
show Parameter Control Byte settings (only relevant when log parameters being out-
put in ASCII).
-Q, --ppc
sets the Parameter Pointer Control (PPC) bit in the LOG SENSE cdb. Default is 0
(i.e. cleared). This bit was made obsolete in SPC-4 revision 18.
-D, --pdt=DT
DT is the peripheral device type that is used when it is not available from the DE-
VICE. There are two main cases of this: with the --pdt=DT without a DEVICE and when
--no_inq is used with a DEVICE.
-r, --raw
output the response in binary to stdout. Error messages and warnings are output to
stderr.
This option may also be given together with --in=FN in which case the contents of
FN are interpreted as binary data (and the response is decoded as normal, not
dumped as binary).
-R, --readonly
open the DEVICE read-only (e.g. in Unix with the O_RDONLY flag). The default action
is to try and open DEVICE read-write then if that fails try to open again with
read-only. However when a read-write open succeeds there may still be unwanted ac-
tions on the close (e.g. some OSes try to do a SYNCHRONIZE CACHE command). So this
option forces a read-only open on DEVICE and if it fails, this utility will exit.
Note that options like --select most likely need a read-write open.
-R, --reset
use SCSI LOG SELECT command (with the PCR bit set) to reset the all log pages (or
the given page). Exactly what is reset depends on the accompanying SP bit (i.e.
--sp option which defaults to 0) and the PC ("page control") value (which defaults
to 1). Supplying this option implies the --select option as well. This option seems
to clear error counter log pages but leaves pages like self-test results,
start-stop cycle counter and temperature log pages unaffected. This option may be
required to clear log pages if a counter reaches its maximum value since the log
page in which the counter is found will remain "stuck" at its maximum value until
some user interaction (e.g. calling sg_logs with this option).
-S, --select
use a LOG SELECT command. The default action (i.e. when neither this option nor
--reset is given) is to do a LOG SENSE command. See the LOG SELECT section.
-s, --sp
sets the Saving Parameters (SP) bit. Default is 0 (i.e. cleared). When set this in-
structs the device to store the current log page parameters (as indicated by the DS
and TSD parameter codes) in some non-volatile location. Hence the log parameters
will be preserved across power cycles. This option is typically not needed, espe-
cially if the GLTSD flag is clear in the control mode page as this instructs the
device to periodically save all saveable log parameters to non-volatile locations.
-t, --temperature
outputs the temperature. First looks in the temperature log page and if that is not
available tries the Informational Exceptions log page which may also have the cur-
rent temperature (especially on older disks).
-T, --transport
outputs the transport ('Protocol specific port') log page. Equivalent to setting
'--page=18h'.
-M, --vendor=VP
where VP is a vendor/manufacturer (e.g. "sea" for Seagate) or product (group) acro-
nym (e.g. "lto5" for the 5th generation LTO (tape) consortium). Either the whole
log page is vendor specific (e.g. page numbers 0x30 to 0x3f) or part of a T10 de-
fined log page is vendor specific. For example SPC-5 defines parameter code 0x0 of
page 0x2f (the Informational Exceptions log page) and states that the remaining pa-
rameter codes (i.e. 0x1 to 0xffff) are vendor specific. Using a VP of "xxx" will
list the available acronyms.
If this option is used with --page=PG and PG is an acronym then this option is ig-
nored. If PG is a number (e.g. 0xc0) then VP is used to choose the which vendor
specific page (e.g. sharing page number 0xc0) to decode.
-v, --verbose
increase level of verbosity. When used with --enumerate, in the list of known log
page names, those that have no associated decode logic are followed by "[hex
only]".
-V, --version
print out version string then exit.
LOG SELECT
The SCSI LOG SELECT command can be used to reset certain parameters to vendor specific de-
faults, save them to non-volatile storage (i.e. the media), or supply new page contents.
This command has changed between SPC-3 and SPC-4 with the addition of the Page and Subpage
Code fields which can only be non zero when the Parameter list length is zero.
The --select (or --reset) option is required to issue a LOG SELECT command. If the --in=FN
option is not given (or FN is effectively empty) then the Parameter list length field is
set to zero. If the --in=FN option is is given then its decoded data is placed in the
data-out buffer and its length in bytes is placed in the Parameter list length field.
Other options that are active with the LOG SELECT command are --control=PC, --reset (which
sets the PCR bit) and --sp.
APPLICATION CLIENT
This is the name of a log page that acts as a container for data provided by the user. An
application client is a SCSI term for the program that issues commands to a SCSI initiator
(often known as a Host Bus Adapter (HBA)). So, for example, this utility is a SCSI appli-
cation client.
The Application Client log page has 64 log parameters with parameters codes 0 to 63. Each
can hold 252 bytes of user binary data. That 252 bytes (or less) of user data, with a 4
byte prefix (for a total of 256 bytes) can be provided with the --in=FN option. A typical
prefix would be '0,n,83,fc'. The "n" is the parameter code in hex so the last log parame-
ter would be '0,3f,83,fc'. That log parameter could be read back at some later time with
'--page=0xf --filter=0x<n>'.
NOTES
This utility will usually do a double fetch of log pages with the SCSI LOG SENSE command.
The first fetch requests a 4 byte response (i.e. place 4 in the "allocation length" field
in the cdb). From that response it can calculate the actual length of the response which
is what it asks for on the second fetch. This is typical practice in SCSI and guaranteed
to work in the standards. However some older devices don't comply. For those devices using
the --maxlen=LEN option will do a single fetch. A value of 252 should be a safe starting
point.
Various log pages hold information error rates, device temperature, start stop cycles
since the device was produced and the results of the last 20 self tests. Self tests can be
initiated by the sg_senddiag(8) utility. The smartmontools package provides much of the
information found with sg_logs in a form suitable for monitoring the health of SCSI disks
and tape drives.
The simplest way to find which log pages can be decoded by this utility is to use the
--enumerate option. Some page names are known but there is no decode logic; such cases
have "[hex only]" after the log page name when the --verbose option is given with --enu-
merate.
EXIT STATUS
The exit status of sg_logs is 0 when it is successful. Otherwise see the sg3_utils(8) man
page.
OLDER COMMAND LINE OPTIONS
The options in this section were the only ones available prior to sg3_utils version 1.23 .
Since then this utility defaults to the newer command line options which can be overridden
by using --old (or -O) as the first option. See the ENVIRONMENT VARIABLES section for an-
other way to force the use of these older command line options.
Options with arguments or with two or more letters can have an extra '-' prepended. For
example: both '-pcb' and '--pcb' are acceptable.
-a outputs all the log pages supported by the device. Equivalent to --all in the main
description.
-A outputs all the log pages and subpages supported by the device. Equivalent to
'--all --all' in the main description.
-c=PC Equivalent to --control=PC in the main description.
-e enumerate internal tables to show information about known log pages. Equivalent to
--enumerate in the main description.
-h suppresses decoding of known log sense pages and prints out the response in hex in-
stead.
-i=FN FN is treated as a file name (or '-' for stdin) which contains ASCII hexadecimal
representing a log page that will be sent as parameter data of a LOG SELECT com-
mand. See the LOG SELECT section.
-H same action as '-h' in this section and equivalent to --hex in the main descrip-
tion.
-l lists the names of all logs sense pages supported by this device. Equivalent to
--list in the main description.
-L lists the names of all logs sense pages and subpages supported by this device.
Equivalent to '--list --list' in the main description.
-m=LEN request only LEN bytes of response data. Default is 0 which is interpreted as all
that is available. LEN is decimal unless it has a leading '0x' or trailing 'h'.
Equivalent to --maxlen=LEN in the main description.
-M=VP Equivalent to --vendor=VP in the main description.
-n Equivalent to --name in the main description.
-N, --new
Switch to the newer style options.
-p=PG log page code to access. PG is either an acronym, a page number, or a page, subpage
pair. Available acronyms can be listed with the --enumerate option. Page (0 to 3f)
and subpage (0 to ff) numbers are comma separated. The numbers are assumed to be
hexadecimal.
-paramp=PP
PP is the parameter pointer value (in hex) to place in command. Should be a number
between 0 and ffff inclusive.
-pcb show Parameter Control Byte settings (only relevant when log parameters being out-
put in ASCII).
-ppc sets the Parameter Pointer Control (PPC) bit. Default is 0 (i.e. cleared).
-r use SCSI LOG SELECT command (PCR bit set) to reset the all log pages (or the given
page). Equivalent to --reset in the main description.
-R Equivalent to --readonly in the main description.
-select
use a LOG SELECT command. Equivalent to --select in the main description.
-sp sets the Saving Parameters (SP) bit. Default is 0 (i.e. cleared). Equivalent to
--sp in the main description.
-t outputs the temperature. Equivalent to --temperature in the main description.
-T outputs the transport ('Protocol specific port') log page. Equivalent to --trans-
port in the main description.
-v increase level of verbosity.
-V print out version string then exit.
-x suppress the INQUIRY command. Equivalent to --no_inq in the main description.
-? output usage message then exit.
ENVIRONMENT VARIABLES
Since sg3_utils version 1.23 the environment variable SG3_UTILS_OLD_OPTS can be given.
When it is present this utility will expect the older command line options. So the pres-
ence of this environment variable is equivalent to using --old (or -O) as the first com-
mand line option.
AUTHOR
Written by Douglas Gilbert
REPORTING BUGS
Report bugs to <dgilbert at interlog dot com>.
COPYRIGHT
Copyright (C) 2002-2020 Douglas Gilbert
This software is distributed under the GPL version 2. There is NO warranty; not even for
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
SEE ALSO
smartctl(smartmontools), sg_senddiag(8)
sg3_utils-1.45 January 2020 SG_LOGS(8)
Generated by $Id: phpMan.php,v 4.55 2007/09/05 04:42:51 chedong Exp $ Author: Che Dong
On Apache
Under GNU General Public License
2025-11-21 17:20 @216.73.216.164 CrawledBy Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)