Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (NetBSD-2.0)
Apropos / Subsearch:
optional field

NTPQ(8)                   BSD System Manager's Manual                  NTPQ(8)

     ntpq -- standard NTP query program

     ntpq [-dinp] [-c command ...] [host ...]

     ntpq 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 con-
     trolled using command line arguments. Requests to read and write arbi-
     trary variables can be assembled, with raw and pretty-printed output
     options being 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 com-
     mands from the standard input and execute these on the NTP server running
     on the first host given on the command line, again defaulting to local-
     host 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 net-
     work topology.  ntpq makes one attempt to retransmit requests, and will
     time requests out if the remote host is not heard from within a suitable
     timeout time.

     Command line options are described following.  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 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 -c options may be given.

     -d      Set debug mode.  Most useful with -c.  Multiple -d options
             increase the level of verbosity.  At debug level four, the entire
             raw packet is dumped to the terminal.

     -i      Force ntpq to operate in interactive mode. Prompts will be writ-
             ten to the standard output and commands read from the standard

     -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 sum-
             mary of their state. This is equivalent to the peers interactive

     Interactive format commands consist of a keyword followed by zero to four
     arguments. Only enough characters of the full keyword to uniquely iden-
     tify 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 ntpq program itself and do not result in NTP mode 6
     requests being sent to a server. These are described following.

     ? [command_keyword]

     helpl [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 probably a better source of information about ntpq
             than this manual page.

     addvars variable_name [= value] [...]

     rmvars variable_name [...]

             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. The addvars com-
             mand 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.

     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 authenti-
             cation on before doing a peer display.

     cooked  Causes output from query commands to be cooked.  Variables which
             are recognized by the server will have their values reformatted
             for human consumption. Variables which ntpq thinks should have a
             decodeable value but didn't are marked with a trailing ?

     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 dis-
             plays.  If no is specified, numeric addresses are printed
             instead. The default is yes, unless modified using the command
             line -n switch.

     keyid 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 pur-

     ntpversion 1 | 2 | 3 | 4
             Sets the NTP version number which ntpq 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.

     quit    Exit ntpq

     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

     raw     Causes all output from query commands is printed as received from
             the remote server. The only formatting/interpretation done on the
             data is to transform non-ASCII data into a printable (but barely
             understandable) 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 will be twice the timeout value set.

     Each peer known to an NTP server has a 16 bit integer association identi-
     fier 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 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.

             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 See the peers com-
             mand for a decode of the condition field. 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

     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 synchroniza-
             tion will respond positively to this. If the association identi-
             fier 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.

             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 associa-
             tions (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

             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

     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.

     mreadlist assocID assocID

     mrl 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 com-

     mreadvar assocID assocID [variable_name [= value [...]

     mrv assocID assocID [variable_name [= [...]
             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 com-

     opeers  An old form of the peers command with the reference ID replaced
             by the local interface address.

             Prints association data concerning in-spec peers from the inter-
             nally cached list of associations. This command performs identi-
             cally to the associations except that it displays the internally
             stored data rather than making a new query.

     peers   Obtains a current list 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 ( if this is unknown),
             the stratum of the remote peer, the type of the peer (local, uni-
             cast, 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.
             Following is a list of these characters, the pidgeon used in the
             rv command, and a short explanation of the condition revealed.

             space reject
                     The peer is discarded as unreachable, synchronized to
                     this server (synch loop) or outrageous synchronization

             x falsetick
                     The peer is discarded by the intersection algorithm as a

             . excess
                     The peer is discarded as not among the first ten peers
                     sorted by synchronization distance and so is probably a
                     poor candidate for further consideration.

             - outlyer
                     The peer is discarded by the clustering algorithm as an

             + candidat
                     The peer is a survivor and a candidate for the combining

             # selected
                     The peer is a survivor, but not among the first six peers
                     sorted by synchronization distance. If the association is
                     ephemeral, it may be demobilized to conserve resources.

             * sys.peer
                     The peer has been declared the system peer and lends its
                     variables to the system variables.

             o pps.peer
                     The peer has been declared the system peer and lends its
                     variables to the system variables. However, the actual
                     system synchronization is derived from a pulse-per-second
                     (PPS) signal, either indirectly via the PPS reference
                     clock driver or directly via kernel interface.

             The flash variable is not defined in the NTP specification, but
             is included as a valuable debugging aid. It displays the results
             of the packet sanity checks defined in the NTP specification
             TEST1 through TEST9.  The bits for each test read in increasing
             sequency from the least significant bit and are defined as fol-
             lows.  The following TEST1 through TEST4 enumerate procedure
             errors. The packet timestamps may or may not be believed, but the
             remaining header data are ignored.

             TEST1   Duplicate packet. A copy from somewhere.

             TEST2   Bogus packet. It is not a reply to a message previously
                     sent. This can happen when the NTP daemon is restarted
                     and before a peer notices.

             TEST3   Unsynchronized. One or more timestamp fields are missing.
                     This normally happens when the first packet from a peer
                     is received.

             TEST4   Either peer delay or peer dispersion is greater than one
                     second. Ya gotta be kidding.

             The following TEST5 through TEST10 enumerate errors in the packet
             header. The packet is discarded without inspecting its contents.

             TEST5   Cryptographic authentication fails. See the
                     Authentication Options, refer to
                     /usr/share/doc/html/ntp/authopt.htm page.

             TEST6   Peer is unsynchronized. Wind up its clock first.

             TEST7   Peer stratum is greater than 15. The peer is probably

             TEST8   Either root delay or root dispersion is greater than one
                     second. Too far from home.

             TEST9   Peer cryptographic authentication fails. Either the key
                     identifier or key is wrong or somebody trashed our

             TEST10  Access is denied. See the Access Control Options, refer
                     to /usr/share/doc/html/ntp/accopt.htm page.

     pstatus assocID
             Sends a read status request to the server for the given associa-
             tion. 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 pidgeon Eng-

     readlist [assocID]

     rl [assocID]
             Requests that the values of the variables in the internal vari-
             able 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 associ-
             ation 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 [...]
             Like the readvar request, except the specified variables are
             written instead of read.

     writelist [assocID]
             Like the readlist request, except the internal list variables are
             written instead of read.

     David L. Mills (millsATudel.edu)

     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.

BSD                             March 29, 2000                             BSD