aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/ntp/scripts/update-leap/update-leap.html
blob: e2e4ad3d4b83be2f0a931fa7d7624db1338d1b1c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
<html lang="en">
<head>
<title>update-leap User's Manual</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="update-leap User's Manual">
<meta name="generator" content="makeinfo 4.7">
<link title="Top" rel="top" href="#Top">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
  pre.display { font-family:inherit }
  pre.format  { font-family:inherit }
  pre.smalldisplay { font-family:inherit; font-size:smaller }
  pre.smallformat  { font-family:inherit; font-size:smaller }
  pre.smallexample { font-size:smaller }
  pre.smalllisp    { font-size:smaller }
  span.sc { font-variant:small-caps }
  span.roman { font-family: serif; font-weight: normal; } 
--></style>
</head>
<body>
<h1 class="settitle">update-leap User's Manual</h1>
<div class="node">
<p><hr>
<a name="Top"></a>Next:&nbsp;<a rel="next" accesskey="n" href="#update_002dleap-Description">update-leap Description</a>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="#dir">(dir)</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="#dir">(dir)</a>
<br>
</div>

  <p>This document describes the use of the NTP Project's <code>update-leap</code> program.

  <p>This document applies to version 4.2.8p8 of <code>update-leap</code>.

<div class="shortcontents">
<h2>Short Contents</h2>
<ul>
</ul>
</div>

<ul class="menu">
<li><a accesskey="1" href="#update_002dleap-Description">update-leap Description</a>:             Description
<li><a accesskey="2" href="#update_002dleap-Invocation">update-leap Invocation</a>: 		Invoking update-leap
</ul>

<div class="node">
<p><hr>
<a name="update_002dleap-Invocation"></a>
<br>
</div>

<h3 class="section">0.1 Invoking update-leap</h3>

<p><a name="index-update_002dleap-1"></a><a name="index-leap_002dseconds-file-manager_002fupdater-2"></a>

  <p><code>update-leap</code>
will validate the file currently on the local system
and if necessary, updates leap-second definition file.

  <p>Ordinarily, the file is found using the "leapfile" directive in
<code>ntp.conf(5)</code>. 
However, an alternate location can be specified on the command line.

  <p>If the file does not exist, is not valid, has expired, or is expiring soon,
a new copy will be downloaded.  If the new copy validates, it is installed and
NTP is (optionally) restarted.

  <p>If the current file is acceptable, no download or restart occurs.

  <p>-c can also be used to invoke another script to perform administrative
functions, e.g. to copy the file to other local systems. 
.PP
This can be run as a cron job.  As the file is rarely updated, and leap
seconds are announced at least one month in advance (usually longer), it
need not be run more frequently than about once every three weeks. 
.PP
For cron-friendly behavior, define CRONJOB=1 in the crontab. 
.PP
This script depends on$REQUIREDCMDS

  <p>This section was generated by <strong>AutoGen</strong>,
using the <code>agtexi-cmd</code> template and the option descriptions for the <code>update-leap</code> program.

<ul class="menu">
<li><a accesskey="1" href="#update_002dleap-usage">update-leap usage</a>:                   update-leap help/usage (<span class="option">--help</span>)
<li><a accesskey="2" href="#update_002dleap-source_002durl">update-leap source-url</a>:              source-url option (-s)
<li><a accesskey="3" href="#update_002dleap-ipv4">update-leap ipv4</a>:                    ipv4 option (-4)
<li><a accesskey="4" href="#update_002dleap-destination">update-leap destination</a>:             destination option (-d)
<li><a accesskey="5" href="#update_002dleap-expiration">update-leap expiration</a>:              expiration option (-e)
<li><a accesskey="6" href="#update_002dleap-ntp_002dconf_002dfile">update-leap ntp-conf-file</a>:           ntp-conf-file option (-f)
<li><a accesskey="7" href="#update_002dleap-force_002dupdate">update-leap force-update</a>:            force-update option (-F)
<li><a accesskey="8" href="#update_002dleap-exit-status">update-leap exit status</a>:             exit status
<li><a accesskey="9" href="#update_002dleap-Usage">update-leap Usage</a>:                   Usage
<li><a href="#update_002dleap-Authors">update-leap Authors</a>:                 Authors
</ul>

<div class="node">
<p><hr>
<a name="update_002dleap-usage"></a>Next:&nbsp;<a rel="next" accesskey="n" href="#update_002dleap-source_002durl">update-leap source-url</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="#update_002dleap-Invocation">update-leap Invocation</a>
<br>
</div>

<h4 class="subsection">0.1.1 update-leap help/usage (<span class="option">--help</span>)</h4>

<p><a name="index-update_002dleap-help-3"></a>
This is the automatically generated usage text for update-leap.

  <p>The text printed is the same whether selected with the <code>help</code> option
(<span class="option">--help</span>) or the <code>more-help</code> option (<span class="option">--more-help</span>).  <code>more-help</code> will print
the usage text by passing it through a pager program. 
<code>more-help</code> is disabled on platforms without a working
<code>fork(2)</code> function.  The <code>PAGER</code> environment variable is
used to select the program, defaulting to <span class="file">more</span>.  Both will exit
with a status code of 0.

<pre class="example">    update-leap
        Usage: $0 [options] [leapfile]

        Verifies and if necessary, updates leap-second definition file

        All arguments are optional: Default (or current value) shown: -s
        Specify the URL of the master copy to download $LEAPSRC -d Specify
        the filename on the local system $LEAPFILE -e Specify how long (in
        days) before expiration the file is to be refreshed. Note that
        larger values imply more frequent refreshes. "$PREFETCH" -f Specify
        location of ntp.conf (used to make sure leapfile directive is
        present and to default leapfile) $NTPCONF -F Force update even if
        current file is OK and not close to expiring. -r Specify number of
        times to retry on get failure $MAXTRIES -i Specify number of minutes
        between retries $INTERVAL -l Use syslog for output (Implied if
        CRONJOB is set) -L Don't use syslog for output -P Specify the syslog
        facility for logging $LOGFAC -t Name of temporary file used in
        validation $TMPFILE -q Only report errors to stdout -v Verbose
        output

        The following options are not (yet) implemented in the perl version:
        -4 Use only IPv4 -6 Use only IPv6 -c Command to restart NTP after
        installing a new file &lt;none&gt; - ntpd checks file daily -p 4|6 Prefer
        IPv4 or IPv6 (as specified) addresses, but use either -z Specify
        path for utilities $PATHLIST -Z Only use system path

        $0 will validate the file currently on the local system

        Ordinarily, the file is found using the "leapfile" directive in
        $NTPCONF. However, an alternate location can be specified on the
        command line.

        If the file does not exist, is not valid, has expired, or is
        expiring soon, a new copy will be downloaded. If the new copy
        validates, it is installed and NTP is (optionally) restarted.

        If the current file is acceptable, no download or restart occurs.

        -c can also be used to invoke another script to perform
        administrative functions, e.g. to copy the file to other local
        systems.

        This can be run as a cron job. As the file is rarely updated, and
        leap seconds are announced at least one month in advance (usually
        longer), it need not be run more frequently than about once every
        three weeks.

        For cron-friendly behavior, define CRONJOB=1 in the crontab.

        Version $VERSION
</pre>
  <div class="node">
<p><hr>
<a name="update_002dleap-source_002durl"></a>Next:&nbsp;<a rel="next" accesskey="n" href="#update_002dleap-ipv4">update-leap ipv4</a>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="#update_002dleap-usage">update-leap usage</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="#update_002dleap-Invocation">update-leap Invocation</a>
<br>
</div>

<h4 class="subsection">0.1.2 source-url option (-s)</h4>

<p><a name="index-update_002dleap_002dsource_002durl-4"></a>
This is the &ldquo;the url of the master copy of the leapseconds file&rdquo; option. 
This option takes a string argument. 
Specify the URL of the master copy to download
$LEAPSRC
<div class="node">
<p><hr>
<a name="update_002dleap-ipv4"></a>Next:&nbsp;<a rel="next" accesskey="n" href="#update_002dleap-destination">update-leap destination</a>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="#update_002dleap-source_002durl">update-leap source-url</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="#update_002dleap-Invocation">update-leap Invocation</a>
<br>
</div>

<h4 class="subsection">0.1.3 ipv4 option (-4)</h4>

<p><a name="index-update_002dleap_002dipv4-5"></a>
This is the &ldquo;use only ipv4 addresses for dns name resolution&rdquo; option.

<p class="noindent">This option has some usage constraints.  It:
     <ul>
<li>must not appear in combination with any of the following options:
ipv6. 
</ul>

  <p>Force DNS resolution of following host names on the command line
        to the IPv4 namespace. 
        _EndOfDoc_;
;

  <p>flag = 
    name      = ipv6;
    flags-cant = ipv4, prefer;
    value     = 6;
    descrip   = "Use only IPv6 addresses for DNS name resolution";
    doc = &lt;&lt;-  _EndOfDoc_
        Force DNS resolution of following host names on the command line
        to the IPv6 namespace. 
        _EndOfDoc_;
;

  <p>flag = 
    name        = prefer;
    flags-cant	= ipv4, ipv6;
    value	= p;
    arg-type    = keyword;
    keyword	= 4, 6;
    descrip     = 'Prefer IPv4 or IPv6 (as specified) addresses, but use either';
    doc         = &lt;&lt;-  _EndOfDoc_
Prefer IPv4 or IPv6 (as specified) addresses, but use either. 
<div class="node">
<p><hr>
<a name="update_002dleap-destination"></a>Next:&nbsp;<a rel="next" accesskey="n" href="#update_002dleap-expiration">update-leap expiration</a>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="#update_002dleap-ipv4">update-leap ipv4</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="#update_002dleap-Invocation">update-leap Invocation</a>
<br>
</div>

<h4 class="subsection">0.1.4 destination option (-d)</h4>

<p><a name="index-update_002dleap_002ddestination-6"></a>
This is the &ldquo;filename on the local system&rdquo; option. 
This option takes a string argument <span class="file">float</span>. 
The name to use to store the leapfile on the local system. 
$LEAPFILE
<div class="node">
<p><hr>
<a name="update_002dleap-expiration"></a>Next:&nbsp;<a rel="next" accesskey="n" href="#update_002dleap-ntp_002dconf_002dfile">update-leap ntp-conf-file</a>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="#update_002dleap-destination">update-leap destination</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="#update_002dleap-Invocation">update-leap Invocation</a>
<br>
</div>

<h4 class="subsection">0.1.5 expiration option (-e)</h4>

<p><a name="index-update_002dleap_002dexpiration-7"></a>
This is the &ldquo;refresh the leapfile this long before it expires&rdquo; option. 
This option takes a string argument. 
Specify how long before expiration the file is to be refreshed
Units are required, e.g. "-e 60 days"  Note that larger values
imply more frequent refreshes. 
"$PREFETCH"
<div class="node">
<p><hr>
<a name="update_002dleap-ntp_002dconf_002dfile"></a>Next:&nbsp;<a rel="next" accesskey="n" href="#update_002dleap-force_002dupdate">update-leap force-update</a>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="#update_002dleap-expiration">update-leap expiration</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="#update_002dleap-Invocation">update-leap Invocation</a>
<br>
</div>

<h4 class="subsection">0.1.6 ntp-conf-file option (-f)</h4>

<p><a name="index-update_002dleap_002dntp_002dconf_002dfile-8"></a>
This is the &ldquo;location of the ntp.conf file&rdquo; option. 
This option takes a string argument. 
Specify location of ntp.conf (used to make sure leapfile directive is
present and to default  leapfile)
/etc/ntp.conf
<div class="node">
<p><hr>
<a name="update_002dleap-force_002dupdate"></a>Next:&nbsp;<a rel="next" accesskey="n" href="#update_002dleap-exit-status">update-leap exit status</a>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="#update_002dleap-ntp_002dconf_002dfile">update-leap ntp-conf-file</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="#update_002dleap-Invocation">update-leap Invocation</a>
<br>
</div>

<h4 class="subsection">0.1.7 force-update option (-F)</h4>

<p><a name="index-update_002dleap_002dforce_002dupdate-9"></a>
This is the &ldquo;force update of the leapfile&rdquo; option. 
Force update even if current file is OK and not close to expiring. 
<div class="node">
<p><hr>
<a name="update_002dleap-exit-status"></a>Next:&nbsp;<a rel="next" accesskey="n" href="#update_002dleap-Usage">update-leap Usage</a>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="#update_002dleap-force_002dupdate">update-leap force-update</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="#update_002dleap-Invocation">update-leap Invocation</a>
<br>
</div>

<h4 class="subsection">0.1.8 update-leap exit status</h4>

<p>One of the following exit values will be returned:
     <dl>
<dt><span class="samp">0 (EXIT_SUCCESS)</span><dd>Successful program execution. 
<br><dt><span class="samp">1 (EXIT_FAILURE)</span><dd>The operation failed or the command syntax was not valid. 
</dl>
  <div class="node">
<p><hr>
<a name="update_002dleap-Usage"></a>Next:&nbsp;<a rel="next" accesskey="n" href="#update_002dleap-Authors">update-leap Authors</a>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="#update_002dleap-exit-status">update-leap exit status</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="#update_002dleap-Invocation">update-leap Invocation</a>
<br>
</div>

<h4 class="subsection">0.1.9 update-leap Usage</h4>

<div class="node">
<p><hr>
<a name="update_002dleap-Authors"></a>Previous:&nbsp;<a rel="previous" accesskey="p" href="#update_002dleap-Usage">update-leap Usage</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="#update_002dleap-Invocation">update-leap Invocation</a>
<br>
</div>

<h4 class="subsection">0.1.10 update-leap Authors</h4>

</body></html>