1@node sntp Invocation 2@section Invoking sntp 3@pindex sntp 4@cindex standard Simple Network Time Protocol client program 5@ignore 6# 7# EDIT THIS FILE WITH CAUTION (invoke-sntp.texi) 8# 9# It has been AutoGen-ed February 4, 2015 at 02:34:17 AM by AutoGen 5.18.5pre4 10# From the definitions sntp-opts.def 11# and the template file agtexi-cmd.tpl 12@end ignore 13 14 15 16@code{sntp} 17can be used as an SNTP client to query a NTP or SNTP server and either display 18the time or set the local system's time (given suitable privilege). It can be 19run as an interactive command or from a 20@code{cron} 21job. 22 23NTP (the Network Time Protocol) and SNTP (the Simple Network Time Protocol) 24are defined and described by RFC 5905. 25 26 27The default is to write the estimated correct local date and time (i.e. not 28UTC) to the standard output in a format like: 29 30@code{'1996-10-15 20:17:25.123 (+0800) +4.567 +/- 0.089 [host] IP sN'} 31 32where the 33@code{'(+0800)'} 34means that to get to UTC from the reported local time one must 35add 8 hours and 0 minutes, 36the 37@code{'+4.567'} 38indicates the local clock is 4.567 seconds behind the correct time 39(so 4.567 seconds must be added to the local clock to get it to be correct). 40Note that the number of decimals printed for this value will change 41based on the reported precision of the server. 42@code{'+/- 0.089'} 43is the reported 44@emph{synchronization} @emph{distance} 45(in seconds), which represents the maximum error due to all causes. 46If the server does not report valid data needed to calculate the 47synchronization distance, this will be reported as 48@code{'+/- ?'}. 49If the 50@emph{host} 51is different from the 52@emph{IP}, 53both will be displayed. 54Otherwise, only the 55@emph{IP} 56is displayed. 57Finally, the 58@emph{stratum} 59of the host is reported. 60 61This section was generated by @strong{AutoGen}, 62using the @code{agtexi-cmd} template and the option descriptions for the @code{sntp} program. 63This software is released under the NTP license, <http://ntp.org/license>. 64 65@menu 66* sntp usage:: sntp help/usage (@option{--help}) 67* sntp ipv4:: ipv4 option (-4) 68* sntp ipv6:: ipv6 option (-6) 69* sntp authentication:: authentication option (-a) 70* sntp broadcast:: broadcast option (-b) 71* sntp concurrent:: concurrent option (-c) 72* sntp gap:: gap option (-g) 73* sntp kod:: kod option (-K) 74* sntp keyfile:: keyfile option (-k) 75* sntp logfile:: logfile option (-l) 76* sntp steplimit:: steplimit option (-M) 77* sntp ntpversion:: ntpversion option (-o) 78* sntp usereservedport:: usereservedport option (-r) 79* sntp timeout:: timeout option (-t) 80* sntp wait:: wait option 81* sntp config:: presetting/configuring sntp 82* sntp exit status:: exit status 83* sntp Usage:: Usage 84* sntp Authors:: Authors 85@end menu 86 87@node sntp usage 88@subsection sntp help/usage (@option{--help}) 89@cindex sntp help 90 91This is the automatically generated usage text for sntp. 92 93The text printed is the same whether selected with the @code{help} option 94(@option{--help}) or the @code{more-help} option (@option{--more-help}). @code{more-help} will print 95the usage text by passing it through a pager program. 96@code{more-help} is disabled on platforms without a working 97@code{fork(2)} function. The @code{PAGER} environment variable is 98used to select the program, defaulting to @file{more}. Both will exit 99with a status code of 0. 100 101@exampleindent 0 102@example 103sntp - standard Simple Network Time Protocol client program - Ver. 4.2.8p1 104Usage: sntp [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]... \ 105 [ hostname-or-IP ...] 106 Flg Arg Option-Name Description 107 -4 no ipv4 Force IPv4 DNS name resolution 108 - prohibits the option 'ipv6' 109 -6 no ipv6 Force IPv6 DNS name resolution 110 - prohibits the option 'ipv4' 111 -a Num authentication Enable authentication with the key auth-keynumber 112 -b Str broadcast Listen to the address specified for broadcast time sync 113 - may appear multiple times 114 -c Str concurrent Concurrently query all IPs returned for host-name 115 - may appear multiple times 116 -d no debug-level Increase debug verbosity level 117 - may appear multiple times 118 -D Num set-debug-level Set the debug verbosity level 119 - may appear multiple times 120 -g Num gap The gap (in milliseconds) between time requests 121 -K Fil kod KoD history filename 122 -k Fil keyfile Look in this file for the key specified with -a 123 -l Fil logfile Log to specified logfile 124 -M Num steplimit Adjustments less than steplimit msec will be slewed 125 - it must be in the range: 126 greater than or equal to 0 127 -o Num ntpversion Send int as our NTP protocol version 128 - it must be in the range: 129 0 to 7 130 -r no usereservedport Use the NTP Reserved Port (port 123) 131 -S no step OK to 'step' the time with settimeofday(2) 132 -s no slew OK to 'slew' the time with adjtime(2) 133 -t Num timeout The number of seconds to wait for responses 134 no wait Wait for pending replies (if not setting the time) 135 - disabled as '--no-wait' 136 - enabled by default 137 opt version output version information and exit 138 -? no help display extended usage information and exit 139 -! no more-help extended usage information passed thru pager 140 -> opt save-opts save the option state to a config file 141 -< Str load-opts load options from a config file 142 - disabled as '--no-load-opts' 143 - may appear multiple times 144 145Options are specified by doubled hyphens and their name or by a single 146hyphen and the flag character. 147 148 149The following option preset mechanisms are supported: 150 - reading file $HOME/.ntprc 151 - reading file ./.ntprc 152 - examining environment variables named SNTP_* 153 154Please send bug reports to: <http://bugs.ntp.org, bugs@@ntp.org> 155@end example 156@exampleindent 4 157 158@node sntp ipv4 159@subsection ipv4 option (-4) 160@cindex sntp-ipv4 161 162This is the ``force ipv4 dns name resolution'' option. 163 164@noindent 165This option has some usage constraints. It: 166@itemize @bullet 167@item 168must not appear in combination with any of the following options: 169ipv6. 170@end itemize 171 172Force DNS resolution of the following host names on the command line 173to the IPv4 namespace. 174@node sntp ipv6 175@subsection ipv6 option (-6) 176@cindex sntp-ipv6 177 178This is the ``force ipv6 dns name resolution'' option. 179 180@noindent 181This option has some usage constraints. It: 182@itemize @bullet 183@item 184must not appear in combination with any of the following options: 185ipv4. 186@end itemize 187 188Force DNS resolution of the following host names on the command line 189to the IPv6 namespace. 190@node sntp authentication 191@subsection authentication option (-a) 192@cindex sntp-authentication 193 194This is the ``enable authentication with the key @var{auth-keynumber}'' option. 195This option takes a number argument @file{auth-keynumber}. 196Enable authentication using the key specified in this option's 197argument. The argument of this option is the @option{keyid}, a 198number specified in the @option{keyfile} as this key's identifier. 199See the @option{keyfile} option (@option{-k}) for more details. 200@node sntp broadcast 201@subsection broadcast option (-b) 202@cindex sntp-broadcast 203 204This is the ``listen to the address specified for broadcast time sync'' option. 205This option takes a string argument @file{broadcast-address}. 206 207@noindent 208This option has some usage constraints. It: 209@itemize @bullet 210@item 211may appear an unlimited number of times. 212@end itemize 213 214If specified @code{sntp} will listen to the specified address 215for NTP broadcasts. The default maximum wait time 216can (and probably should) be modified with @option{-t}. 217@node sntp concurrent 218@subsection concurrent option (-c) 219@cindex sntp-concurrent 220 221This is the ``concurrently query all ips returned for host-name'' option. 222This option takes a string argument @file{host-name}. 223 224@noindent 225This option has some usage constraints. It: 226@itemize @bullet 227@item 228may appear an unlimited number of times. 229@end itemize 230 231Requests from an NTP "client" to a "server" should never be sent 232more rapidly than one every 2 seconds. By default, any IPs returned 233as part of a DNS lookup are assumed to be for a single instance of 234@code{ntpd}, and therefore @code{sntp} will send queries to these IPs 235one after another, with a 2-second gap in between each query. 236 237The @option{-c} or @option{--concurrent} flag says that any IPs 238returned for the DNS lookup of the supplied host-name are on 239different machines, so we can send concurrent queries. 240@node sntp gap 241@subsection gap option (-g) 242@cindex sntp-gap 243 244This is the ``the gap (in milliseconds) between time requests'' option. 245This option takes a number argument @file{milliseconds}. 246Since we're only going to use the first valid response we get and 247there is benefit to specifying a good number of servers to query, 248separate the queries we send out by the specified number of 249milliseconds. 250@node sntp kod 251@subsection kod option (-K) 252@cindex sntp-kod 253 254This is the ``kod history filename'' option. 255This option takes a file argument @file{file-name}. 256Specifies the filename to be used for the persistent history of KoD 257responses received from servers. If the file does not exist, a 258warning message will be displayed. The file will not be created. 259@node sntp keyfile 260@subsection keyfile option (-k) 261@cindex sntp-keyfile 262 263This is the ``look in this file for the key specified with @option{-a}'' option. 264This option takes a file argument @file{file-name}. 265This option specifies the keyfile. 266@code{sntp} will search for the key specified with @option{-a} 267@file{keyno} in this file. See @command{ntp.keys(5)} for more 268information. 269@node sntp logfile 270@subsection logfile option (-l) 271@cindex sntp-logfile 272 273This is the ``log to specified logfile'' option. 274This option takes a file argument @file{file-name}. 275This option causes the client to write log messages to the specified 276@file{logfile}. 277@node sntp steplimit 278@subsection steplimit option (-M) 279@cindex sntp-steplimit 280 281This is the ``adjustments less than @var{steplimit} msec will be slewed'' option. 282This option takes a number argument. 283If the time adjustment is less than @file{steplimit} milliseconds, 284slew the amount using @command{adjtime(2)}. Otherwise, step the 285correction using @command{settimeofday(2)}. The default value is 0, 286which means all adjustments will be stepped. This is a feature, as 287different situations demand different values. 288@node sntp ntpversion 289@subsection ntpversion option (-o) 290@cindex sntp-ntpversion 291 292This is the ``send @var{int} as our ntp protocol version'' option. 293This option takes a number argument. 294When sending requests to a remote server, tell them we are running 295NTP protocol version @file{ntpversion} . 296@node sntp usereservedport 297@subsection usereservedport option (-r) 298@cindex sntp-usereservedport 299 300This is the ``use the ntp reserved port (port 123)'' option. 301Use port 123, which is reserved for NTP, for our network 302communications. 303@node sntp timeout 304@subsection timeout option (-t) 305@cindex sntp-timeout 306 307This is the ``the number of seconds to wait for responses'' option. 308This option takes a number argument @file{seconds}. 309When waiting for a reply, @code{sntp} will wait the number 310of seconds specified before giving up. The default should be 311more than enough for a unicast response. If @code{sntp} is 312only waiting for a broadcast response a longer timeout is 313likely needed. 314@node sntp wait 315@subsection wait option 316@cindex sntp-wait 317 318This is the ``wait for pending replies (if not setting the time)'' option. 319 320@noindent 321This option has some usage constraints. It: 322@itemize @bullet 323@item 324can be disabled with --no-wait. 325@item 326It is enabled by default. 327@end itemize 328 329If we are not setting the time, wait for all pending responses. 330 331 332@node sntp config 333@subsection presetting/configuring sntp 334 335Any option that is not marked as @i{not presettable} may be preset by 336loading values from configuration ("rc" or "ini") files, and values from environment variables named @code{SNTP} and @code{SNTP_<OPTION_NAME>}. @code{<OPTION_NAME>} must be one of 337the options listed above in upper case and segmented with underscores. 338The @code{SNTP} variable will be tokenized and parsed like 339the command line. The remaining variables are tested for existence and their 340values are treated like option arguments. 341 342 343@noindent 344@code{libopts} will search in 2 places for configuration files: 345@itemize @bullet 346@item 347$HOME 348@item 349$PWD 350@end itemize 351The environment variables @code{HOME}, and @code{PWD} 352are expanded and replaced when @file{sntp} runs. 353For any of these that are plain files, they are simply processed. 354For any that are directories, then a file named @file{.ntprc} is searched for 355within that directory and processed. 356 357Configuration files may be in a wide variety of formats. 358The basic format is an option name followed by a value (argument) on the 359same line. Values may be separated from the option name with a colon, 360equal sign or simply white space. Values may be continued across multiple 361lines by escaping the newline with a backslash. 362 363Multiple programs may also share the same initialization file. 364Common options are collected at the top, followed by program specific 365segments. The segments are separated by lines like: 366@example 367[SNTP] 368@end example 369@noindent 370or by 371@example 372<?program sntp> 373@end example 374@noindent 375Do not mix these styles within one configuration file. 376 377Compound values and carefully constructed string values may also be 378specified using XML syntax: 379@example 380<option-name> 381 <sub-opt>...<...>...</sub-opt> 382</option-name> 383@end example 384@noindent 385yielding an @code{option-name.sub-opt} string value of 386@example 387"...<...>..." 388@end example 389@code{AutoOpts} does not track suboptions. You simply note that it is a 390hierarchicly valued option. @code{AutoOpts} does provide a means for searching 391the associated name/value pair list (see: optionFindValue). 392 393The command line options relating to configuration and/or usage help are: 394 395@subsubheading version (-) 396 397Print the program version to standard out, optionally with licensing 398information, then exit 0. The optional argument specifies how much licensing 399detail to provide. The default is to print just the version. The licensing infomation may be selected with an option argument. 400Only the first letter of the argument is examined: 401 402@table @samp 403@item version 404Only print the version. This is the default. 405@item copyright 406Name the copyright usage licensing terms. 407@item verbose 408Print the full copyright usage licensing terms. 409@end table 410 411@node sntp exit status 412@subsection sntp exit status 413 414One of the following exit values will be returned: 415@table @samp 416@item 0 (EXIT_SUCCESS) 417Successful program execution. 418@item 1 (EXIT_FAILURE) 419The operation failed or the command syntax was not valid. 420@item 66 (EX_NOINPUT) 421A specified configuration file could not be loaded. 422@item 70 (EX_SOFTWARE) 423libopts had an internal operational error. Please report 424it to autogen-users@@lists.sourceforge.net. Thank you. 425@end table 426@node sntp Usage 427@subsection sntp Usage 428@node sntp Authors 429@subsection sntp Authors 430