376 lines
15 KiB
Groff
376 lines
15 KiB
Groff
.\" $NetBSD: ntpq.8,v 1.2 1997/04/20 21:53:22 christos Exp $
|
|
.\" Converted from HTML to mandoc by Christos Zoulas <christos@netbsd.org>
|
|
.\"
|
|
.Dd April 17, 1997
|
|
.Dt NTPQ 8
|
|
.Os
|
|
.Sh NAME
|
|
.Nm ntpq
|
|
.Nd standard NTP query program
|
|
.Sh SYNOPSIS
|
|
.Nm ntpq
|
|
.Op Fl inp
|
|
.Op Fl c Ar command
|
|
.Ar host
|
|
.Op Ar ...
|
|
.Sh DESCRIPTION
|
|
.Nm
|
|
is used to query NTP servers which implement the
|
|
recommended NTP mode 6 control message format about current state and to
|
|
request 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 raw and
|
|
pretty-printed output options being available.
|
|
.Nm
|
|
can also obtain and print a list of peers in a common format by sending
|
|
multiple queries to the server.
|
|
.Pp
|
|
If one or more request options is included on the command line when
|
|
.Nm
|
|
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,
|
|
.Nm
|
|
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. .Nm
|
|
will prompt for commands if the standard
|
|
input is a terminal device.
|
|
.Pp
|
|
.Nm
|
|
uses NTP mode 6 packets to communicate with the NTP
|
|
server, and hence can be used to query any compatable 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. .Nm
|
|
makes one
|
|
attempt to retransmit requests, and will time requests out if the remote
|
|
host is not heard from within a suitable timeout time.
|
|
.Pp
|
|
Command line options are described following. Specifying a command
|
|
line option other than
|
|
.Op Fl i
|
|
or
|
|
.Op Fl n
|
|
will cause the specified query (queries)
|
|
to be sent to the indicated host(s) immediately. Otherwise,
|
|
.Nm
|
|
will attempt to read interactive format commands from
|
|
the standard input.
|
|
.Bl -tag -width indent
|
|
.It Fl c
|
|
The following 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
|
|
.Fl c
|
|
options may be given.
|
|
.It Fl i
|
|
Force
|
|
.Nm
|
|
to operate in interactive mode. Prompts will
|
|
be written to the standard output and commands read from the standard
|
|
input.
|
|
.It Fl n
|
|
Output all host addresses in dotted-quad numeric format rather than
|
|
converting to the canonical host names.
|
|
.It Fl p
|
|
Print a list of the peers known to the server as well as a summary
|
|
of their state. This is equivalent to the
|
|
.Ar peers interactive command.
|
|
.El
|
|
.Sh 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 a `<', followed by a file
|
|
name, to the command line. A number of interactive format commands are
|
|
executed entirely within the
|
|
.Nm
|
|
program itself and do not
|
|
result in NTP mode 6 requests being sent to a server. These are
|
|
described following.
|
|
.Pp
|
|
.Bl -tag -width indent
|
|
.It Cd ? | helpl Op command_keyword
|
|
.Cd ?
|
|
by itself will print a list of all the command
|
|
keywords known to this incarnation of
|
|
.Nm
|
|
A
|
|
.Cd ?
|
|
followed by a command keyword will print funcation and
|
|
usage information about the command. This command is probably a better
|
|
source of information about
|
|
.Nm
|
|
than this manual page.
|
|
.It Cd addvars Ar variable_name Op =value Op ...
|
|
.It Cd rmvars Ar variable_name Op ...
|
|
.It Cd clearvars
|
|
The data carried by NTP mode 6 messages consists of a list of items
|
|
of the form
|
|
.Ar variable_name=value ,
|
|
where the
|
|
.Ar =value
|
|
is ignored, and can be omitted, in
|
|
requests to the server to read variables. .Nm
|
|
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. The addvars command allows variables and their optional values to
|
|
be added to the list. 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.
|
|
.It Cd authenticate Ar yes | no
|
|
Normally
|
|
.Nm
|
|
does not authenticate requests unless
|
|
they are write requests. The command authenticate yes causes
|
|
.Nm
|
|
to send authentication with all requests it makes.
|
|
Authenticated requests causes some servers to handle requests slightly
|
|
differently, and can occasionally melt the CPU in fuzzballs if you turn
|
|
authentication on before doing a peer display.
|
|
.It Cd cooked
|
|
Causes output from query commands to be
|
|
.Cd cooked .
|
|
Variables which are recognized by the server will have their values
|
|
reformatted for human consumption. Variables which
|
|
.Nm
|
|
thinks should have a decodeable value but didn't are marked with a
|
|
trailing
|
|
.Cd ? .
|
|
.It Cd debug Ar more | less | off
|
|
Turns internal query program debugging on and off.
|
|
.It Cd delay Ar milliseconds
|
|
Specify a time interval to be added to timestamps included in
|
|
requests which require 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.
|
|
.It Cd host Ar hostname
|
|
Set the host to which future queries will be sent. Hostname may be
|
|
either a host name or a numeric address.
|
|
.It Cd hostnames Op yes | no
|
|
If
|
|
.Op yes
|
|
is specified, host names are printed in
|
|
information displays. If
|
|
.Op no
|
|
is specified, numeric
|
|
addresses are printed instead. The default is
|
|
.Op yes ,
|
|
unless
|
|
modified using the command line
|
|
.Fl n
|
|
switch.
|
|
.It Cd keyid Ar keyid
|
|
This command allows the specification of a key number to be used to
|
|
authenticate configuration requests. This must correspond to a key
|
|
number the server has been configured to use for this purpose.
|
|
.It Cd ntpversion Ar 1 | 2 | 3
|
|
Sets the NTP version number which .Nm
|
|
claims in
|
|
packets. Defaults to 3, Note that mode 6 control messages (and modes,
|
|
for that matter) didn't exist in NTP version 1. There appear to be no
|
|
servers left which demand version 1.
|
|
.It Cd quit
|
|
Exit
|
|
.Nm
|
|
.It Cd passwd
|
|
This command prompts you to type in a password (which will not be
|
|
echoed) which 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.
|
|
.It Cd raw
|
|
Causes all output from query commands is printed as received from
|
|
the remote server. The only formating/intepretation done on the data is
|
|
to transform nonascii data into a printable (but barely understandable)
|
|
form.
|
|
.It Cd timeout Ar millseconds
|
|
Specify a timeout period for responses to server queries. The
|
|
default is about 5000 milliseconds. Note that since
|
|
.Nm
|
|
retries each query once after a timeout, the total waiting time for a
|
|
timeout will be twice the timeout value set.
|
|
.El
|
|
.Sh 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.
|
|
.Pp
|
|
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
|
|
some format. 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.
|
|
.Bl -tag -width indent
|
|
.It Cd 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
|
|
.Cd associations
|
|
command is cached internally in
|
|
.Nm
|
|
The index is then of use when dealing with stupid
|
|
servers which use association identifiers which are hard for humans to
|
|
type, in that for any subsequent commands which require an association
|
|
identifier as an argument, the form &index may be used as an
|
|
alternative.
|
|
.It Cd clockvar Op assocID variable_name =value ...
|
|
Requests that a list of the server's clock variables be sent.
|
|
Servers which have 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
|
|
.Pa 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.
|
|
.It Cd lassocations
|
|
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
|
|
.Cd associations
|
|
command only
|
|
for servers which retain state for out-of-spec client associations
|
|
(i.e., fuzzballs). Such associations are normally omitted from the
|
|
display when the
|
|
.Cd associations
|
|
command is used, but are
|
|
included in the output of
|
|
.Cd lassociations .
|
|
.It Cd lpassociations
|
|
Print data for all associations, including out-of-spec client
|
|
associations, from the internally cached list of associations. This
|
|
command differs from
|
|
.Cd passociations
|
|
only when dealing with fuzzballs.
|
|
.It Cd lpeers
|
|
Like R peers, except a summary of all associations for which the
|
|
server is maintaining state is printed. This can produce a much longer
|
|
list of peers from fuzzball servers.
|
|
.It Cd mreadlist Ar assocID Ar assocID
|
|
.It Cd mrl Ar assocID Ar assocID
|
|
Like the
|
|
.Cd 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
|
|
.Cd associations
|
|
command.
|
|
.It Cd mreadvar Ar assocID assocID Op variable_name=value ...
|
|
.It Cd mrv Ar assocID assocID Op variable_name=value ...
|
|
Like the
|
|
.Cd 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
|
|
.Cd associations
|
|
command.
|
|
.It Cd opeers
|
|
An old form of the
|
|
.Cd peers command with the reference ID
|
|
replaced by the local interface address.
|
|
.It Cd passociations
|
|
Prints association data concerning in-spec peers from the internally
|
|
cached list of associations. This command performs identically to the
|
|
.Cd associations
|
|
except that it displays the internally
|
|
stored data rather than making a new query.
|
|
.It Cd peers
|
|
Obtains a list of in-spec peers of the server, along with a summary
|
|
of each peer's state. Summary information includes the address of the
|
|
remote peer, the reference ID (0.0.0.0 if the refID is unknown), the
|
|
stratum of the remote peer, the type of the 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.
|
|
.Pp
|
|
The character in the left margin indicates the fate of this peer
|
|
in the clock selection process. The codes mean:
|
|
.Cd "\ "
|
|
discarded due
|
|
to high stratum and/or failed sanity checks;
|
|
.Cd "x"
|
|
designated
|
|
falsticker by the intersection algorithm;
|
|
.Cd "."
|
|
culled from
|
|
the end of the candidate list;
|
|
.Cd "-"
|
|
discarded by the clustering algorithm;
|
|
.Cd "+"
|
|
included in the final selection set;
|
|
.Cd "#"
|
|
selected for synchronizatio;n but distance exceeds
|
|
maximum;
|
|
.Cd "*"
|
|
selected for synchronization; and
|
|
.Cd "o"
|
|
selected for synchronization, PPS signal in use.
|
|
.Pp
|
|
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.
|
|
.Pp
|
|
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 or
|
|
.Cd "REFCLK(<implementation number>,<parameter>)" .
|
|
On
|
|
.Cd "hostnames no"
|
|
only IP-addresses will be displayed.
|
|
.It Cd pstatus Ar 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 hexidecimal and in pidgeon English.
|
|
.It Cd readlist Op assocID
|
|
.It Cd rl Op 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.
|
|
.It Cd readvar Ar assocID Op variable_name=value ...
|
|
.It Cd rv Ar assocID Op variable_name=value ...
|
|
Requests that the values of the specified variables be returned by
|
|
the server by sending a read variables request. If the association ID 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.
|
|
.It Cd writevar Ar assocID Op variable_name=value ...
|
|
Like the readvar request, except the specified variables are written
|
|
instead of read.
|
|
.It Cd writelist Op assocID
|
|
Like the readlist request, except the internal list variables are
|
|
written instead of read.
|
|
.El
|
|
.Sh BUGS
|
|
The peers command is non-atomic and may occasionally result in
|
|
spurious error messages about invalid associations occurring and
|
|
terminating the command. The timeout time is a fixed constant, which
|
|
means you wait a long time for timeouts since it assumes sort of a worst
|
|
case. The program should improve the timeout estimate as it sends
|
|
queries to a particular host, but doesn't.
|
|
.Sh AUTHOR
|
|
David L. Mills (mills@udel.edu)
|