Bu simülasyon sırasında neden ikinci bir sıçrama kanıtı göremiyorum?


-1

Yaklaşan sıçramayı ikinci kez simüle etmeye çalışıyorum, böylece uygulamamın davranışını o zamana kadar test edebiliyorum, ancak testi düzgün bir şekilde kurduğuma ikna olmadım.

Oracle VirtualBox sanal makinesinin içindeki CentOS 7.2.1511'de, NTP'yi nasıl ayarlayıp teste başladığımı işte :

yum install ntp

echo "server 127.127.1.0" > /etc/ntp.conf
echo "fudge 127.127.1.0 stratum 10" >> /etc/ntp.conf
echo "leapfile \"/var/ntp/leap-seconds.list\"" >> /etc/ntp.conf

mkdir /var/ntp
wget -P /var/ntp https://www.ietf.org/timezones/data/leap-seconds.list 
setenforce 0  # avoids having to configure SELinux access to the .list

date -s "2016-12-31 23:55" 
service ntpd restart

Ancak, aşağıdaki komutu çalıştırarak bırakmak bana hiçbir zaman adımının olmadığını gösteriyor:

$ i=0; while true; do echo -n "$i: "; date -u; ((i++)); sleep 1; done
(..)
45: Sat 31 Dec 23:59:56 UTC 2016
46: Sat 31 Dec 23:59:57 UTC 2016
47: Sat 31 Dec 23:59:58 UTC 2016
48: Sat 31 Dec 23:59:59 UTC 2016
49: Sun  1 Jan 00:00:00 UTC 2017
50: Sun  1 Jan 00:00:01 UTC 2017
51: Sun  1 Jan 00:00:02 UTC 2017
52: Sun  1 Jan 00:00:03 UTC 2017
53: Sun  1 Jan 00:00:04 UTC 2017
(..)

Çıktıyı olduğu gibi izliyorum ve her satır birbiri ardına basılıyor.

Ve (bunu göstermek zor olsa da) Uygulamamın ürettiği veri dosyalarında saat sapması kanıtı göremiyorum; NTP yapılandırmam yine de çevirmek yerine adım atıyor olmalı :

$ cat /etc/sysconfig/ntpd
OPTIONS="-g"

Yerel refclock NTP sunucum, bir dereceye kadar işi yapıyor gibi görünüyor, çünkü sistem günlüğü şöyle diyor:

Dec 31 23:59:59 localhost ntpd[1871]: 0.0.0.0 051b 0b leap_event

Burada ne özlüyorum?


ntpq -pcrvLütfen çıktısını gönderebilir misiniz ? Üretim kutularım (Centos 6) sıçraması silahlanmalı ama aktif olmamalı. Ayrıca artık dosyanın hangi sürümünü kullanıyorsunuz?
user3788685

@ user3788685: pastebin.com/jEGNZPzf Ve artık dosya, yukarıdaki adımlardan görebileceğiniz gibi doğrudan IETF.org'dan indirilir.
Orbit

İçinde herhangi bir şey dmesgvar kernel inserting leap secondmıydı - geçerli bir sıçrama eklendiğinde hem 60'ınci saniyeyi hem de günlük mesajı satırını alıyorum gibi bir satırın olması gerekirdi .
user3788685

@ user3788685: Hayır, hatırlayabildiğimden değil.
Orbit

FWIW, gerçek artık saniye, AFAICT 31'inci gecesinde doğru bir şekilde uygulandı.
Orbit'te Hafiflik Yarışları

Yanıtlar:


1

Bunu grawity'nin cevabına bir yorum olarak eklemek isterdim, ancak yeterli temsilcim yok. Doğru olmayan saat diliminin "60" olarak adlandırılan bir saniyenin varlığını hesaba katmadığı doğru olsa da (yani 23:59:60 zaman damgasını görmezsiniz), Linux çekirdeği hala eklemelidir. İkinci 59'u iki kez tekrarlayarak ikinci bir sıçrama ( daha fazla bilgi için buraya bakınız ). Öyleyse 23:59:59 saat damgasının tekrarını görmelisiniz. Gördüğünüzü çoğalttım, o yüzden deli değilsin ama yine de nedenini çözmeye çalışıyorum.

Denetlenecek bir şey, yerel ntp arka planınızın kesinlikle artık ikinci bekleyen bayrağını yerleştirmesidir (ya Wireshark ya da benzerini kullanarak paketteki LI = 1'i kontrol ederek ya da bu ntpq komutunu kullanarak:

ntpq -c 'lassoc' -c "mrv &1 &999 leap,srcadr,stratum"

Sıçrama = 01'i arayın. Benimki, soruşturmalar hala devam ediyor ...


pastebin.com/ubGRJQiD "sıçrama = 00"!
Orbit
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.