ntpq(1Mtcp)
ntpq --
standard Network Time Protocol query program
Synopsis
ntpq [ -inp ] [ -c command ]
[ host ] [ ... ]
Description
ntpq queries NTP servers that implement
the recommended mode 6 control message format about current
state, and requests changes in that state. The program may
be run either in interactive mode or controlled using
command line arguments. Requests to read and write
arbitrary variables can be assembled, with
output options available.
ntpq can also obtain and print a list of peers in
a common format by sending multiple queries to the server.
If one or more request options is included on the command
line when ntpq is executed, each of the requests
will be sent to the NTP servers running on each
of the hosts given as command line arguments, or on
localhost by default. If no request options are
given, ntpq will attempt to read commands from
the standard input and execute these on the NTP
server running on the first host given on the command line,
again defaulting to localhost when no other host
is specified. ntpq will prompt for commands if
the standard input is a terminal device.
ntpq uses NTP mode 6 packets to
communicate with the NTP server, and hence can be
used to query any compatible server on the network which
permits it. Note that since NTP is a
UDP protocol this communication will be somewhat
unreliable, especially over large distances in terms of
network topology. ntpq makes one attempt to
retransmit requests, and will time requests out if the
remote host is not heard from within a suitable time out
time.
Command line options are described below. Specifying a
command line option other than -i or -n
will cause the specified query (queries) to be sent to the
indicated host(s) immediately. Otherwise, ntpq
will attempt to read interactive format commands from the
standard input.
- -c
-
The command argument is interpreted as an interactive
format command and is added to the list of commands to be
executed on the specified host(s). Multiple -c
options may be given.
- -i
-
Force ntpq to operate in interactive mode.
Prompts will be written to the standard output and commands
read from the standard input.
- -n
-
Output all host addresses in dotted-quad numeric format
rather than converting to the canonical host names.
- -p
-
Print a list of the peers known to the server as well as a
summary of their state. This is equivalent to
peers.
Internal commands
Interactive format commands consist of a keyword followed
by zero to four arguments. Only enough characters of the
full keyword to uniquely identify the command need be
typed. The output of a command is normally sent to the
standard output, but optionally the output of individual
commands may be sent to a file by appending ``>'',
followed by a filename, to the command line.
A number of interactive format commands are executed
entirely within the ntpq program itself and do
not result in NTP mode 6 requests being sent to a
server. They are described here.
- ? [command_keyword]
-
A ``?'' by itself will print a list of all the
command keywords known to this incarnation of
ntpq. A ``?'' followed by a command
keyword will print function and usage information about the
command. This command is an excellent supplement to
this manual page.
- timeout milliseconds
-
Specify a time out period for responses to server queries.
The default is about 5000 milliseconds. Note that since
ntpq retries each query once after a time out,
the total waiting time for a time out will be twice the
time out value set.
- delay milliseconds
-
Specify a time interval to be added to timestamps included
in requests requiring authentication. This is used to
enable (unreliable) server reconfiguration over long delay
network paths or between machines whose clocks are
unsynchronized. Actually the server does not now require
timestamps in authenticated requests, so this command may
be obsolete.
- host hostname
-
Set the host to which future queries will be sent.
hostname may be either a host name or a numeric
address.
- poll [#] [verbose]
-
Poll the current server in client mode. The first argument
is the number of times to poll (default is 1), while the
second argument may be given to obtain a more detailed
output of the results.
NOTE:
The poll command is not currently implemented.
It did appear in previous versions of NTP, and thus,
is documented here.
- keyid #
-
This command allows the specification of a key number to be
used to authenticate configuration requests. This must
correspond to a key number that the server has been
configured to use for this purpose.
- passwd
-
This command prompts you to type in a password (which will
not be echoed) that will be used to authenticate
configuration requests. The password must correspond to
the key configured for use by the NTP server for
this purpose if such requests are to be successful.
NOTE:
keyid and passwd are constructed in the
NTP keys file.
- hostnames yes|no
-
If yes is specified, host names are printed in
information displays. If no is given, numeric
addresses are printed instead. The default is
yes unless modified using the command line
-n switch.
- raw
-
Causes all output from query commands to be printed as
received from the remote server. The only
formatting done on the data is to transform
non ASCII data into a printable (but barely
understandable) form.
- cooked
-
Causes output from query commands to be ``cooked''.
Variables that are recognized by the server will have their
values reformatted for clarity. Variables that
ntpq thinks should have a decodeable value but
didn't are marked with a trailing ``?''.
- ntpversion 1|2|3
-
Sets the NTP version number that ntpq
claims in packets. Defaults to 3 since mode 6
control messages (and modes, for that matter) didn't exist
in NTP version 1.
- authenticate yes|no
-
Normally ntpq does not authenticate requests
unless they are write requests. The command
authenticate yes causes ntpq
to send authentication with all requests it makes.
Authenticated requests cause some servers to handle
requests slightly differently, and can occasionally cause
problems with fuzzball servers if you turn authentication
on before doing a peer display.
- addvars variable_name[=value][,... ] rmvars variable_name[,... ] clearvars
-
The addvars command allows variables and their
optional values to be added to the list of NTP mode
6 messages.
The data carried by NTP mode 6 messages consists
of a list of items of the form
variable_name=value
where the ``=value'' is ignored, and can be
omitted, in requests to the server to read variables.
ntpq maintains an internal list in which data to
be included in control messages can be assembled, and sent
using the readlist and writelist
commands described below.
If more than one variable is to be added, the
list should be comma-separated and not contain white
space. The rmvars command can be used to remove
individual variables from the list, while the
clearlist command removes all variables from the
list.
- debug more|less|no
-
Turns internal query program debugging on and off.
- quit
-
Exit ntpq.
Control message commands
Each peer known to an NTP server has a 16 bit
integer association identifier assigned
to it. NTP control messages which carry peer
variables must identify the peer the values correspond to
by including its association ID. An association
ID of 0 is special, and indicates the variables
are system variables, whose names are drawn from a separate
name space.
Control message commands result in one or more
NTP mode 6 messages being sent to the server, and
cause the data returned to be printed in a format appropriate
to the command used. Most
commands currently implemented send a single message and
expect a single response. The current exceptions are the
peers command, which will send a preprogrammed
series of messages to obtain the data it needs, and the
mreadlist and mreadvar commands, which
will iterate over a range of associations.
This process has special use for three terms. They are:
- in-spec peers
-
Peers that are synchronized.
- out-of-spec peers
-
Peers that are, for some reason, not yet in sync. There
are many reasons for being out-of-sync. For example,
peers may be not yet in sync or somehow broken.
- fuzzball
-
Fuzzballs are clocks that survey and average ticks from
many different clocks. They are described in detail in a
paper by David Miller on the University of Delaware web page.
For more information, access the web page at
http://www.eecis.udel.edu/~ntp.
The range of associations includes:
- associations
-
Obtains and prints a list of association identifiers and
peer statuses for in-spec peers of the server being
queried. The list is printed in columns. The first of
these is an index numbering the associations from 1 for
internal use, the second the actual association identifier
returned by the server and the third the status word for
the peer. This is followed by a number of columns
containing data decoded from the status word. Note that
the data returned by the associations command is
cached internally in ntpq. The index is then
used when dealing with servers which use association
identifiers. For
any subsequent commands which require an association
identifier as an argument, the form &index may be
used as an alternative.
- lassociations
-
Obtains and prints a list of association identifiers and
peer statuses for all associations for which the server is
maintaining state. This command differs from the
associations command only for servers which
retain state for out-of-spec client associations (that
is, fuzzballs). Such associations are normally omitted
from the display when the associations command is
used, but are included in the output of
lassociations.
- passociations
-
Prints association data concerning in-spec peers from the
internally cached list of associations. This command
performs identically to the associations except
that it displays the internally stored data rather than
making a new query.
- lpassociations
-
Print data for all associations, including out-of-spec
client associations, from the internally cached list of
associations. This command differs from
passociations only when dealing with fuzzballs.
- pstatus assocID
-
Sends a read status request to the server for the given
association. The names and values of the peer variables
returned will be printed. Note that the status word from
the header is displayed preceding the variables, both in
hexadecimal and in abbreviated English.
- readvar [ assocID ] [ variable_name[=value][, ... ] ]
-
Requests that the values of the specified variables be
returned by the server.
If the associationID is omitted or is
given as zero the variables are system variables, otherwise
they are peer variables and the values returned will be
those of the corresponding peer. Omitting the variable
list will send a request with no data, which should induce
the server to return a default display.
- rv [ assocID ] [ variable_name[=value][, ... ] ]
-
A short form for the readvar command.
- writevar assocID variable_name=value[, ... ]
-
Requests that the values of the specified variables be
written to the server.
If the associationID is omitted or is
given as zero the variables are system variables, otherwise
they are peer variables and the values returned will be
those of the corresponding peer. Omitting the variable
list will send a request with no data, which should induce
the server to return a default display.
- readlist [ assocID ]
-
Requests that the values of the variables in the internal
variable list be returned by the server. If the
association ID is omitted or is 0, the variables
are assumed to be system variables. Otherwise, they are
treated as peer variables. If the internal variable list
is empty, a request is sent without data, which should
induce the remote server to return a default display.
- rl [ assocID ]
-
An easy-to-type short form of the readlist command.
- writelist [ assocID ]
-
Requests that the values of the variables in the internal
variable list be written to the server. If the
association ID is omitted or is 0, the variables
are assumed to be system variables. Otherwise, they are
treated as peer variables. If the internal variable list
is empty, a request is sent without data, which should
induce the remote server to return a default display.
- mreadvar assocID assocID [ variable_name[=value][, ... ] ]
-
Like the readvar command, except the query is
done for each of a range of (nonzero) association
IDs. This range is determined from the
association list cached by the most recent
associations command.
- mrv assocID assocID [ variable_name[=value][, ... ] ]
-
A short form of the mreadvar
command.
- mreadlist assocID assocID
-
Like the readlist command, except the query is
done for each of a range of (nonzero) association
IDs. This range is determined from the
association list cached by the most recent
associations command.
- mrl assocID assocID
-
A short form of the mreadlist
command.
- clockvar [ assocID ] [ variable_name[=value][, ... ] ]
-
Requests that a list of the server's clock variables be
sent. Servers having a radio clock or other external
synchronization will respond positively to this. If the
association identifier is omitted or zero the request is
for the variables of the ``system clock'' and will
generally get a positive response from all servers with a
clock. If the server treats clocks as pseudo-peers, and
hence can possibly have more than one clock connected at
once, referencing the appropriate peer association
ID will show the variables of a particular
clock. Omitting the variable list will cause the server to
return a default variable display.
- cv [ assocID ] [ variable_name[=value][, ... ] ]
-
A short form of the clockvar command.
- peers
-
Obtains a list of in-spec peers of the server, along with
a summary of each peer's state. Summary information
includes the remote peer's designation, the reference
ID (0.0.0.0 if the refID is unknown),
the stratum of the remote peer, the type of peer (local,
unicast, multicast or broadcast), when the last
packet was received, the polling interval, in
seconds, the reachability register, in octal, and the
current estimated delay, offset and dispersion of the peer,
all in seconds.
The character in the left margin indicates the fate of this
peer in the clock selection process. The codes mean: <sp>
discarded due to high stratum and/or failed sanity checks;
"x" designated falsticker by the intersection algorithm;
"." culled from the end of the candidate list; "-" discarded
by the clustering algorithm; "+" included in the final
selection set; "#" selected for synchronization, but the distance
exceeds maximum; "
"o" selected for synchronization, pps signal in use.
Note that since the peers command depends on the ability to parse
the values in the responses it gets, it may fail to work from
time to time with servers which poorly control the data formats.
The contents of the host field may be one of four forms. It
may be a host name, an IP address, a reference clock
implementation name with its parameter of
REFCLK(<implementation
number>, <parameter>). On hostnames no
only IP addresses will be displayed.
- lpeers
-
Like peers, except it prints a summary of all associations
for which the server is maintaining state. This
can produce a much longer list of peers from fuzzball
servers.
- opeers
-
An old form of the peers command with the
reference ID replaced by the local interface
address.
Exit codes
None
References
xntpd(1Mtcp),
xntpdc(1Mtcp)
RFC 1059,
RFC 1119,
RFC 1305
30 January 1998
© 1998 The Santa Cruz Operation, Inc. All rights reserved.