home4u.ch

NTP Servers

leap second - 31. December 2016 / 1. January 2017


On 31. December 2016 at 23:59:60 UTC (1. January 2017 at 00:59:60 CET) a leap second was inserted. This leap second was announced from IERS (International Earth Rotation and Reference Systems Service) on 6. July 2016 in the Bulletin C 52.

To track what the systems were doing during this event, I created a few Shell Scripts for reporting. Below in Reports and Log File Entries are the outputs available.


Reports and Log File Entries

This reports and log file entries below are from the leap second on 31. December 2016 at 23:59:60 UTC (1. January 2017 at 00:59:60 CET).
ntp1.home4u.ch was running in CET on batman.home4u.ch, a FreeBSD 10.3-RELEASE-p15 system with ntpd 4.2.8p9@1.3265-o and GPS 18x LVC.

Output from report-timechange-ntp.sh (reduced to the relevant seconds):
Log of ntp time during 2 minutes with milliseconds:

before time change:
associd=0 status=4615 leap_add_sec, sync_ntp, 1 event, clock_sync,
version="ntpd 4.2.8p9@1.3265-o Tue Dec 27 21:16:52 UTC 2016 (1)",
processor="amd64", system="FreeBSD/10.3-RELEASE-p15", leap=01, stratum=2,
precision=-22, rootdelay=1.864, rootdisp=25.292, refid=192.33.96.101,
reftime=dc12c2fd.0d08e913  Sun, Jan  1 2017  0:51:25.050,
clock=dc12c4c4.1e409d27  Sun, Jan  1 2017  0:59:00.118, peer=56691, tc=8,
mintc=3, offset=0.773873, frequency=67.620, sys_jitter=1.619975,
clk_jitter=0.001, clk_wander=0.021, tai=36, leapsec=201701010000,
expire=201706280000

  Sun, Jan 1 2017 0:59:00.146, (.146736861),
  Sun, Jan 1 2017 0:59:00.671, (.671682605),
  Sun, Jan 1 2017 0:59:01.188, (.188370197),
  Sun, Jan 1 2017 0:59:01.703, (.703613135),
  Sun, Jan 1 2017 0:59:02.219, (.219423656),
  ...
  Sun, Jan 1 2017 0:59:57.188, (.188695666),
  Sun, Jan 1 2017 0:59:57.705, (.705124181),
  Sun, Jan 1 2017 0:59:58.232, (.232062871),
  Sun, Jan 1 2017 0:59:58.755, (.755266137),
  Sun, Jan 1 2017 0:59:59.276, (.276156733),
  Sun, Jan 1 2017 0:59:59.809, (.809413309),
  Sun, Jan 1 2017 0:59:59.332, (.332146472),
  Sun, Jan 1 2017 0:59:59.852, (.852832181),
  Sun, Jan 1 2017 1:00:00.630, (.630809015),
  Sun, Jan 1 2017 1:00:01.149, (.149761222),
  Sun, Jan 1 2017 1:00:01.688, (.688531820),
  Sun, Jan 1 2017 1:00:02.229, (.229775407),
  Sun, Jan 1 2017 1:00:02.772, (.772395448),
  ...
  Sun, Jan 1 2017 1:01:08.391, (.391514328),
  Sun, Jan 1 2017 1:01:09.530, (.530239981),
  Sun, Jan 1 2017 1:01:10.446, (.446332536),
  Sun, Jan 1 2017 1:01:12.822, (.822861453),
  Sun, Jan 1 2017 1:01:13.426, (.426185780),

after time change:
associd=0 status=061b leap_none, sync_ntp, 1 event, leap_event,
version="ntpd 4.2.8p9@1.3265-o Tue Dec 27 21:16:52 UTC 2016 (1)",
processor="amd64", system="FreeBSD/10.3-RELEASE-p15", leap=00, stratum=2,
precision=-22, rootdelay=0.158, rootdisp=12.933, refid=87.90.14.154,
reftime=dc12c4ca.1002b0ce  Sun, Jan  1 2017  0:59:06.062,
clock=dc12c54a.016378f6  Sun, Jan  1 2017  1:01:14.005, peer=56689, tc=8,
mintc=3, offset=0.710406, frequency=67.608, sys_jitter=2.193801,
clk_jitter=0.001, clk_wander=0.020, tai=37, leapsec=201701010000,
expire=201706280000

Output from report-timechange-unix.sh (reduced to the relevant seconds):
Log of unix time during 2 minutes:

Sun Jan  1 00:59:00 CET 2017
Sun Jan  1 00:59:00 CET 2017
Sun Jan  1 00:59:01 CET 2017
Sun Jan  1 00:59:01 CET 2017
Sun Jan  1 00:59:02 CET 2017
...
Sun Jan  1 00:59:57 CET 2017
Sun Jan  1 00:59:57 CET 2017
Sun Jan  1 00:59:58 CET 2017
Sun Jan  1 00:59:58 CET 2017
Sun Jan  1 00:59:59 CET 2017
Sun Jan  1 00:59:59 CET 2017
Sun Jan  1 00:59:59 CET 2017
Sun Jan  1 00:59:59 CET 2017
Sun Jan  1 01:00:00 CET 2017
Sun Jan  1 01:00:01 CET 2017
Sun Jan  1 01:00:01 CET 2017
Sun Jan  1 01:00:02 CET 2017
Sun Jan  1 01:00:02 CET 2017
...
Sun Jan  1 01:01:02 CET 2017
Sun Jan  1 01:01:03 CET 2017
Sun Jan  1 01:01:06 CET 2017
Sun Jan  1 01:01:07 CET 2017
Sun Jan  1 01:01:07 CET 2017

Entries in the log file:
unfortunately the log entries are lost


ntp2.home4u.ch was running in UTC on goliath.home4u.ch, a Gentoo Linux system with kernel 4.4.26, ntpd 4.2.8p9@1.3265-o and DCF77 mouseCLOCK.

Output from report-timechange-ntp.sh (reduced to the relevant seconds):
Log of ntp time during 2 minutes with milliseconds:

before time change:
associd=0 status=4219 leap_add_sec, sync_lf_radio, 1 event, leap_armed,
version="ntpd 4.2.8p9@1.3265-o Sat Dec 17 16:48:00 UTC 2016 (1)",
processor="x86_64", system="Linux/4.4.26-gentoo", leap=01, stratum=1,
precision=-24, rootdelay=0.000, rootdisp=2.501, refid=DCFa,
reftime=dc12c48a.409b30b2  Sat, Dec 31 2016 23:58:02.252,
clock=dc12c4c5.c45803a1  Sat, Dec 31 2016 23:59:01.766, peer=26596, tc=6,
mintc=3, offset=-0.224201, frequency=4.247, sys_jitter=0.329346,
clk_jitter=0.783, clk_wander=0.030, tai=36, leapsec=201701010000,
expire=201706280000

  Sat, Dec 31 2016 23:59:01.788, (.788426536),
  Sat, Dec 31 2016 23:59:02.327, (.327170515),
  Sat, Dec 31 2016 23:59:02.829, (.829651151),
  Sat, Dec 31 2016 23:59:03.332, (.332091892),
  Sat, Dec 31 2016 23:59:03.834, (.834539428),
  ...
  Sat, Dec 31 2016 23:59:57.092, (.092314883),
  Sat, Dec 31 2016 23:59:57.594, (.594657885),
  Sat, Dec 31 2016 23:59:58.097, (.097191312),
  Sat, Dec 31 2016 23:59:58.599, (.599413321),
  Sat, Dec 31 2016 23:59:59.102, (.102174370),
  Sat, Dec 31 2016 23:59:59.603, (.603751472),
  Sat, Dec 31 2016 23:59:59.105, (.105692347),
  Sat, Dec 31 2016 23:59:59.608, (.608421564),
  Sun, Jan 1 2017 0:00:00.113, (.113139479),
  Sun, Jan 1 2017 0:00:00.616, (.616467085),
  Sun, Jan 1 2017 0:00:01.127, (.127369768),
  Sun, Jan 1 2017 0:00:01.629, (.629833630),
  Sun, Jan 1 2017 0:00:02.132, (.132102429),
  Sun, Jan 1 2017 0:00:02.634, (.634107117),
  ...
  Sun, Jan 1 2017 0:00:59.440, (.440613270),
  Sun, Jan 1 2017 0:00:59.943, (.943016037),
  Sun, Jan 1 2017 0:01:00.444, (.444629970),
  Sun, Jan 1 2017 0:01:00.946, (.946671469),
  Sun, Jan 1 2017 0:01:01.448, (.448801027),

after time change:
associd=0 status=021b leap_none, sync_lf_radio, 1 event, leap_event,
version="ntpd 4.2.8p9@1.3265-o Sat Dec 17 16:48:00 UTC 2016 (1)",
processor="x86_64", system="Linux/4.4.26-gentoo", leap=00, stratum=1,
precision=-24, rootdelay=0.000, rootdisp=3.378, refid=DCFa,
reftime=dc12c4ca.40dc6529  Sat, Dec 31 2016 23:59:06.253,
clock=dc12c53d.f4328bf0  Sun, Jan  1 2017  0:01:01.953, peer=26596, tc=6,
mintc=3, offset=-0.492190, frequency=4.217, sys_jitter=0.087174,
clk_jitter=0.739, clk_wander=0.030, tai=37, leapsec=201701010000,
expire=201706280000

Output from report-timechange-unix.sh (reduced to the relevant seconds):
Log of unix time during 2 minutes:

Sat Dec 31 23:59:01 UTC 2016
Sat Dec 31 23:59:02 UTC 2016
Sat Dec 31 23:59:02 UTC 2016
Sat Dec 31 23:59:03 UTC 2016
Sat Dec 31 23:59:03 UTC 2016
...
Sat Dec 31 23:59:57 UTC 2016
Sat Dec 31 23:59:57 UTC 2016
Sat Dec 31 23:59:58 UTC 2016
Sat Dec 31 23:59:58 UTC 2016
Sat Dec 31 23:59:59 UTC 2016
Sat Dec 31 23:59:59 UTC 2016
Sat Dec 31 23:59:59 UTC 2016
Sat Dec 31 23:59:59 UTC 2016
Sun Jan  1 00:00:00 UTC 2017
Sun Jan  1 00:00:00 UTC 2017
Sun Jan  1 00:00:01 UTC 2017
Sun Jan  1 00:00:01 UTC 2017
Sun Jan  1 00:00:02 UTC 2017
Sun Jan  1 00:00:02 UTC 2017
...
Sun Jan  1 00:00:59 UTC 2017
Sun Jan  1 00:00:59 UTC 2017
Sun Jan  1 00:01:00 UTC 2017
Sun Jan  1 00:01:00 UTC 2017
Sun Jan  1 00:01:01 UTC 2017

Entries in the log file:
Jan  1 00:02:00 goliath ntpd[32559]: kernel reports leap second has occurred
Jan  1 00:02:00 goliath ntpd[32559]: kernel reports leap second has occurred


ntp3.home4u.ch was running in CET on superman.wenks.ch, a FreeBSD 10.3-RELEASE-p15 system with ntpd 4.2.8p9@1.3265-o and DCF77 mouseCLOCK.

Output from report-timechange-ntp.sh (reduced to the relevant seconds):
Log of ntp time during 2 minutes with milliseconds:

before time change:
associd=0 status=4619 leap_add_sec, sync_ntp, 1 event, leap_armed,
version="ntpd 4.2.8p9@1.3265-o Wed Dec 28 12:58:15 UTC 2016 (1)",
processor="amd64", system="FreeBSD/10.3-RELEASE-p15", leap=01, stratum=2,
precision=-22, rootdelay=0.188, rootdisp=25.183, refid=87.90.14.154,
reftime=dc12c28b.0d66e7db  Sun, Jan  1 2017  0:49:31.052,
clock=dc12c4c4.b5c28b13  Sun, Jan  1 2017  0:59:00.709, peer=36529, tc=9,
mintc=3, offset=2.250357, frequency=52.020, sys_jitter=1.457714,
clk_jitter=0.903, clk_wander=0.203, tai=36, leapsec=201701010000,
expire=201706280000

  Sun, Jan 1 2017 0:59:00.748, (.748038743),
  Sun, Jan 1 2017 0:59:01.263, (.263214081),
  Sun, Jan 1 2017 0:59:01.782, (.782238230),
  Sun, Jan 1 2017 0:59:02.305, (.305844138),
  Sun, Jan 1 2017 0:59:02.831, (.831013796),
  ...
  Sun, Jan 1 2017 0:59:57.090, (.090013613),
  Sun, Jan 1 2017 0:59:57.635, (.635189492),
  Sun, Jan 1 2017 0:59:58.151, (.151643333),
  Sun, Jan 1 2017 0:59:58.672, (.672415209),
  Sun, Jan 1 2017 0:59:59.188, (.188254899),
  Sun, Jan 1 2017 0:59:59.703, (.703276185),
  Sun, Jan 1 2017 0:59:59.219, (.219679152),
  Sun, Jan 1 2017 0:59:59.735, (.735641338),
  Sun, Jan 1 2017 1:00:00.251, (.251713735),
  Sun, Jan 1 2017 1:00:00.768, (.768960969),
  Sun, Jan 1 2017 1:00:01.283, (.283412358),
  Sun, Jan 1 2017 1:00:01.799, (.799720866),
  Sun, Jan 1 2017 1:00:02.313, (.313452810),
  Sun, Jan 1 2017 1:00:02.829, (.829938921),
  ...
  Sun, Jan 1 2017 1:01:24.871, (.871186074),
  Sun, Jan 1 2017 1:01:25.414, (.414922736),
  Sun, Jan 1 2017 1:01:25.936, (.936622263),
  Sun, Jan 1 2017 1:01:26.467, (.467587666),
  Sun, Jan 1 2017 1:01:26.979, (.979583123),

after time change:
associd=0 status=061b leap_none, sync_ntp, 1 event, leap_event,
version="ntpd 4.2.8p9@1.3265-o Wed Dec 28 12:58:15 UTC 2016 (1)",
processor="amd64", system="FreeBSD/10.3-RELEASE-p15", leap=00, stratum=2,
precision=-22, rootdelay=0.188, rootdisp=27.403, refid=87.90.14.154,
reftime=dc12c28b.0d66e7db  Sun, Jan  1 2017  0:49:31.052,
clock=dc12c557.a133ffe1  Sun, Jan  1 2017  1:01:27.629, peer=36529, tc=9,
mintc=3, offset=2.250357, frequency=52.020, sys_jitter=0.521993,
clk_jitter=0.903, clk_wander=0.203, tai=37, leapsec=201701010000,
expire=201706280000

Output from report-timechange-unix.sh (reduced to the relevant seconds):
Log of unix time during 2 minutes:

Sun Jan  1 00:59:00 CET 2017
Sun Jan  1 00:59:00 CET 2017
Sun Jan  1 00:59:01 CET 2017
Sun Jan  1 00:59:01 CET 2017
Sun Jan  1 00:59:02 CET 2017
...
Sun Jan  1 00:59:57 CET 2017
Sun Jan  1 00:59:57 CET 2017
Sun Jan  1 00:59:58 CET 2017
Sun Jan  1 00:59:58 CET 2017
Sun Jan  1 00:59:59 CET 2017
Sun Jan  1 00:59:59 CET 2017
Sun Jan  1 00:59:59 CET 2017
Sun Jan  1 00:59:59 CET 2017
Sun Jan  1 01:00:00 CET 2017
Sun Jan  1 01:00:00 CET 2017
Sun Jan  1 01:00:01 CET 2017
Sun Jan  1 01:00:01 CET 2017
Sun Jan  1 01:00:02 CET 2017
Sun Jan  1 01:00:02 CET 2017
...
Sun Jan  1 01:01:19 CET 2017
Sun Jan  1 01:01:19 CET 2017
Sun Jan  1 01:01:20 CET 2017
Sun Jan  1 01:01:20 CET 2017
Sun Jan  1 01:01:21 CET 2017

Entries in the log file:
Jan  1 01:15:27 superman ntpd[20827]: kernel reports leap second has occurred
Jan  1 01:15:27 superman ntpd[20827]: kernel reports leap second has occurred


Shell Scripts

report-timechange-ntp.sh

To run the scripts below, add a line to crontab. Something like this for UTC on Linux (adjust path to script, mday, month and e-mail address):
#minute hour    mday    month   wday    command
59	23	31	12	*	/path/to/report-timechange-ntp.sh 2>&1 | /bin/mail -s "ntp time change log leap second (`hostname -s`)" hostmaster@example.com

Or something like this for CET on FreeBSD (adjust path to script, mday, month and e-mail address):
#minute hour    mday    month   wday    command
59	00	01	01	*	/path/to/report-timechange-ntp.sh 2>&1 | /usr/bin/mail -s "ntp time change log leap second (`hostname -s`)" hostmaster@example.com

FreeBSD (also needs the Ports net/ntp, shells/bash and sysutils/coreutils installed):
#!/usr/bin/env bash

echo "Log of ntp time during 2 minutes with milliseconds:"
echo
echo "before time change:"
/usr/local/sbin/ntpq -c rv
echo
for i in $(/usr/local/bin/gseq 0 240); do
        /usr/local/sbin/ntptime | awk '/time .*  / { $1="";$2="";print}' ; sleep 0.5
done
echo
echo "after time change:"
/usr/local/sbin/ntpq -c rv

exit 0

Linux:
#!/usr/bin/env bash

echo "Log of ntp time during 2 minutes with milliseconds:"
echo
echo "before time change:"
ntpq -c rv
echo
for i in $(seq 0 240); do
	ntptime | awk '/time .*  / { $1="";$2="";print}' ; sleep 0.5
done
echo
echo "after time change:"
ntpq -c rv

exit 0


report-timechange-unix.sh

To run the scripts below, add a line to crontab. Something like this for UTC on Linux (adjust path to script, mday, month and e-mail address):
#minute hour    mday    month   wday    command
59	23	31	12	*	/path/to/report-timechange-unix.sh 2>&1 | /bin/mail -s "unix time change log leap second (`hostname -s`)" hostmaster@example.com

Or something like this for CET on FreeBSD or Mac OS X (adjust path to script, mday, month and e-mail address):
#minute hour    mday    month   wday    command
59	00	01	01	*	/path/to/report-timechange-unix.sh 2>&1 | /usr/bin/mail -s "unix time change log leap second (`hostname -s`)" hostmaster@example.com

FreeBSD (also needs the Ports shells/bash and sysutils/coreutils installed):
#!/usr/bin/env bash

echo "Log of unix time during 2 minutes:"
echo
for i in $(/usr/local/bin/gseq 0 240); do
	date ; sleep 0.5
done

exit 0

Linux:
#!/usr/bin/env bash

echo "Log of unix time during 2 minutes:"
echo
for i in $(seq 0 240); do
	date ; sleep 0.5
done

exit 0



Document History

29-Jan-2017Initial publication



home4u.ch last update 29-Jan-2017