Czy Ubuntu automatycznie dostosuje się do drugiego skoku pod koniec roku (2016)?

43

BBC donosi:

Dodatkowa sekunda zostanie dodana do zegarów świata w sylwestra, aby zachować synchronizację z obrotem Ziemi.

Czy to oznacza, że ​​muszę coś zrobić, aby moja maszyna Ubuntu dotrzymała tego terminu, czy automatycznie dostosuje się tak, aby nie była sekundą przerwy?

Kaz Wolfe
źródło
2
Może ci się podobać ten film (który omawia także sekundy przestępne) youtube.com/watch?v=-5wpm-gesOY
Thorbjørn Ravn Andersen
1
@ ThorbjørnRavnAndersen Oh, to Tom Scott!
Ismael Miguel

Odpowiedzi:

34

Jeśli twój komputer Ubuntu słucha NTP i synchronizuje czas z Internetem, system automatycznie dostosuje się do różnicy czasu.

Podczas gdy Twój komputer niekoniecznie musi być świadomy faktu, że nastąpił skok przestępny, będzie on przechwytywał i rejestrował zdarzenie, gdy serwery NTP wprowadzają zmiany w Internecie.

Jeśli nie uważasz, że dodawana jest dodatkowa sekunda, możesz wymusić aktualizację za pomocą następującego polecenia:

sudo ntpdate -s pool.ntp.org

To automatycznie wykona geolokalizację, aby dać ci pobliski serwer (zmniejszając błąd opóźnienia), a Ubuntu dostosuje się do twojej strefy czasowej (więc jeśli serwer znajduje się w innej strefie czasowej, wszystko jest w porządku). Alternatywnie możesz użyć ntp.ubuntu.com.

Pamiętaj, że jeśli masz pecha, żaden z używanych przez Ciebie serwerów czasu nie poradzi sobie poprawnie z drugim skokiem. To mało prawdopodobne, ale możliwe. Zaleca się ręczne sprawdzenie ze znanym dobrym źródłem (radio analogowe, ewentualnie time.is ).


Alternatywnie, jeśli korzystasz z nowoczesnej wersji Ubuntu, istnieje wbudowane narzędzie o nazwie timedatectl. Domyślnie jest to uruchamiane automatycznie podczas uruchamiania. Dlatego szybki restart może w razie potrzeby wymusić synchronizację.

Kaz Wolfe
źródło
1
W Wielkiej Brytanii korzystanie z time.nist.gov nadal działa. Ubuntu dostosowuje to, co zgłasza w mojej strefie czasowej. Zakładam, że to samo dotyczy wszystkich stref czasowych
Tim
2
@Tim Tak, ale synchronizacja z serwerem w USA ma większe opóźnienie = wyższy poziom błędów ... więc działa, ale wynik końcowy jest mniej precyzyjny niż przy użyciu bliższego serwera.
Bakuriu
1
Spróbuj pool.ntp.orgzamiast tego; to zawsze powinno podnieść coś stosunkowo blisko Ciebie.
Michael Hampton
3
Ta odpowiedź jest problematyczna. 1.) Jeśli masz pecha, żaden z serwerów czasu, których użyjesz, nie poradzi sobie poprawnie z drugim skokiem. To mało prawdopodobne, ale możliwe. 2.) Jeśli ntpddziała, ntpdatejednoczesne uruchomienie go dezorientuje. Lepiej najpierw to zatrzymać. Jeszcze lepiej, wcale nie biegnij ntpdate. 3.) Serwery czasu NIST nie potrzebują dodatkowego ruchu z Stack Exchange; ntp.ubuntu.comlub pool.ntp.orgbyłoby lepiej. 4.) Wielka Brytania faktycznie korzysta uk.pool.ntp.org, ale i pool.ntp.orgtak przeprowadzi geolokalizację.
Matt Nordhoff
Zapomniałem jednego. 5.) Jeśli korzystasz ntpdatez serwerów czasu losowego i ponownie masz pecha, użyjesz takiego, który również nie poradził sobie poprawnie z drugim skokiem! Pula NTP dezaktywuje takie serwery szybko, ale nie natychmiast. Wybitne serwery rządowe wcale nie są lepsze. (Chociaż myślę, że tym razem NIST.)
Matt Nordhoff
17

Jądro przestępne jest obsługiwane automatycznie przez jądro Linuksa, nie jest wymagane ponowne uruchomienie ani synchronizacja NTP w celu zachowania aktualnego czasu. Jeśli spojrzysz na dziennik systemu, zobaczysz coś podobnego do

[263284.397894] Clock: inserting leap second 23:59:60 UTC

Ponieważ 23:59:60nie jest to prawidłowy czas w Linuksie, twój zegar osiągnie 00:00:00, a następnie cofnij się do 23:59:59. Wszelkie obiekty utworzone podczas tej sekundy (np. Pliki) mogą być niespójnie datowane.

Jeśli chodzi o czas Linuksa (w przeciwieństwie do czasu rzeczywistego), sekundy przestępne nie istnieją:

# date -d "2016-12-31 23:59:59" +%s
1483225199
# date -d "2017-01-01 00:00:00" +%s
1483225200
Dmitrij Grigoriew
źródło
2
Moje logi wydają się potwierdzać tę odpowiedź. Ostatnio uruchomiłem dmesg | grep 'leap second'na mojej głównej maszynie 16.04 i to pokazało [1153894.866672] Clock: inserting leap second 23:59:60 UTC. To, tylko z różnymi liczbami na początku, zostało również pokazane na mojej minimalnej maszynie wirtualnej 16.04, zainstalowanej z mini.iso, której używam do testowania. Że minimalny system nie ntpddziała, ani nie ma żadnej z ntplub openntpdpakietów zainstalowanych.
Eliah Kagan
2
@EliahKagan Z pewnością jądro nie ma na stałe zapisanej listy wszystkich przyszłych sekund przestępnych. Jądro ma logikę, aby wstawić sekundę przestępną, ale coś musi powiedzieć kernelowi, że sekunda przestępna ma zostać wstawiona. Nie znam niczego innego niż NTP, które mogłyby nakazać jądro wstawić sekundę przestępną. Zauważ, że jeśli jądro zostało już poinstruowane, aby wstawić sekundę przestępną, odinstalowanie NTP bez ponownego uruchomienia spowoduje pozostawienie jądra w stanie, w którym wstawi sekundę przestępną.
kasperd
1
@kasperd Zgadzam się z twoim ogólnym rozumowaniem, ale nie sądzę, aby NTP był kiedykolwiek zainstalowany w tym systemie, który skonfigurowałem zaledwie kilka (choć więcej niż jeden) dni wcześniej. Przychodzą mi na myśl dwie możliwości. To jest maszyna wirtualna VMware i chociaż nie zainstalowałem żadnych sterowników VMware, wierzę, że Ubuntu już ją ma. Czy taki sterownik dowiedział się o drugim skoku z komputera hosta? Poza tym spodziewam się, że NTP był zaangażowany podczas instalacji, choć nie jestem pewien, jak to działa w przypadku restartów. Myślę, że mini.isosam ma NTP i używa go instalator Debiana.
Eliah Kagan
1
@EliahKagan, nie sprawdziłem, ale domyślnym klientem NTTP może być chrony.
Carsten S
2
@CarstenS Okazuje się, że systemd-timesyncd (8) synchronizuje zegar mojego minimalnego systemu. Nie pomyślałem o tym i dowiedziałem się przez przypadek: grep -RPis '(?<!mou)ntp' /var/logujawniłem te 14 linii syslog , pokazując synchronizacje czasu z hosta, który ma ntpnazwę. Z perspektywy czasu ma sens, że tajemnicza służba, o której nigdy nie wiedziałem, że jest częścią systemd. (Btw, dobra uwaga na temat chronii, której też nie sprawdziłam; nie jest jednak zainstalowana.)
Eliah Kagan