|
» |
|
|
|
NAMEntpq — standard Network Time Protocol query program SYNOPSISntpq
[-dinp]
[-c
command]...
[host]... DESCRIPTIONntpq
is used to query
NTP
servers, that 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 mode using command line arguments.
Requests to read and write
arbitrary variables can be assembled, with raw and pretty-printed
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 to
localhost
by default.
If no request options are given,
ntpq
attempts 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
prompts 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 is
somewhat unreliable, especially over large distances in terms of network
topology.
ntpq
makes one attempt to retransmit requests, and will time out if the
remote host is not heard from within a suitable timeout time. Command Line OptionsThe command line options supported are described below.
Specifying a command line option other than
-i
or
-n
causes the specified query (queries) to be sent to the indicated
host(s) immediately.
Otherwise,
ntpq
attempts to read interactive format commands from the standard
input.
- -c command
Interactive format command.
The command is added
to the list of commands to be executed on the specified
host(s).
Multiple
-c
options may be given. - -d
Print debugging information. - -i
Force
ntpq
to operate in interactive mode.
Prompts are 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 the
peers
interactive command.
Interactive CommandsInteractive format commands consist of a keyword followed by zero to
four arguments.
Only enough characters of the full keyword to uniquely
identify the command needs to 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, on 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.
These are described below.
- ? [command_keyword]
- help [command_keyword]
A
?
or
help
by itself prints a list of all the command keywords known to this
version of
ntpq.
A
?
or
help
followed by a command keyword prints function and usage information
about the command. - addvars [variable_name=value][ ... ]
- rmvars [variable_name=value][ ... ]
- clearvars
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. - addvars
This 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. - rmvars
This command can be used to remove individual variables from the list. - clearlist
This command removes all variables from the list. - 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 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. - cooked
Causes output from query commands to be
cooked.
Variables which are recognized by the server have their values
reformatted for human usage. - debug [more|less|off]
Turns internal query program debugging on and off. - delay 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. - host hostname
Set the host to which future queries will be sent.
Hostname may be either a host name or a numeric address. - hostnames [yes|no]
If
yes
is specified, host names are printed in information displays.
If
no
is specified, numeric addresses are printed instead.
The default is
yes,
unless modified using the command line
-n
option. - keyid keyid-id
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. - ntpversion [1|2|3]
Sets the NTP version number which
ntpq
claims in packets.
Defaults to 3.
Note that mode 6 control messages
(and modes) did not exist in NTP version 1.
There appears to be no servers left which demand version 1. - quit
Exit
ntpq. - passwd
This command prompts you to type in a password (which is not
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. - raw
Causes all output from query commands to be printed as received from the
remote server.
The only formatting/interpretation done on the data is to
transform nonascii data into a printable
form. - timeout milliseconds
Specify a timeout period for responses to server queries.
The default
is about 5000 milliseconds.
Note that since
ntpq
retries each query once after a timeout, the total waiting time for a
timeout is twice the timeout value set.
Control Message CommandsEach peer known to an
NTP
server has 16 bit integer association identifier assigned to it.
NTP
control messages which carry peer variables must identify the peer, the
values it corresponds 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 some
format.
Most commands currently implemented send a single message and
expect a single response.
The current exceptions are the
peers
command, which sends a preprogrammed series of messages to
obtain the data it needs, and the
mreadlist
and
mreadvar
commands, which iterate over
a range of associations.
The supported control messages are listed below:
- associations
Obtains and prints a list of association identifiers and peer status
for in-spec peers of the server being queried.
The list is printed in columns.
The first of these columns is an index numbering the
associations from 1 for internal use, the second column is
the actual association identifier returned by the server and
the third column is 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 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 and index may be used as an alternative. - clockvar [assocID][variable_name[=value[ ... ]][ ... ]]
- cv [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 respond
positively to this.
If the association identifier is omitted or zero,
the request is for the variables of the
system clock
and generally gets a positive response from all servers with a
clock.
If the server treats the clocks as pseudo-peers, then
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 causes the server to return a
default variable display. - lassociations
Obtains and prints a list of association identifiers and peer status
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 (i.e., fuzzballs).
Such associations are normally omitted
from the display when the
associations
command is used, but are included in the output of
lassociations. - lpassociations
Print data for all associations, including out-of-spec client
associations, from the internally cached list of associations.
This command differs from
passociations
command only when dealing with fuzzballs. - lpeers
Similar to
peers
command,
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. - mreadlist assocID assocID
- mrl assocID assocID
Similar to the
readlist
command, except the query is done for each range
of (nonzero) association IDs.
This range is determined from the
association list cached by the most recent associations command. - mreadvar assocID assocID [variable_name[=value][ ... ]]
- mrv assocID assocID [variable_name[=value][ ... ]]
Similar to the
readvar
command, except the query is done for each range
of (nonzero) association IDs.
This range is determined from the
association list cached by the most recent associations command. - opeers
An old form of the
peers
command with the reference ID replaced by the
local interface address. - 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. - 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
milliseconds. The character in the left margin indicates the fate of this peer in the
clock selection process.
The codes have the following meaning:
- <BLANK>
Discarded due to high stratum and/or failed sanity checks. - x
Designated falseticker 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 distance exceeds maximum. - *
Selected for synchronization. - 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 or
REFCLK(
<implementation number>,
<parameter>).
On
hostnames no
only IP-addresses will be displayed. - 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 English. - readlist [assocID]
- rl [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. - readvar assocID variable_name [=value][ ... ]]
- rv assocID 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. - writevar assocID variable_name [=value][ ... ]]
Similar to the
readvar
command, except the specified variables are written
instead of read. - writelist [assocID]
Similar to the
readlist
command, except the internal list variables are
written instead of read.
WARNINGSThe
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 a
long wait for timeouts since it assumes a worst case. FILES- /etc/ntp.keys
Contains the encryption keys used for authentication.
AUTHORntpq
was developed by Dennis Ferguson at the University of Toronto.
|