Jaki jest zalecany sposób synchronizacji czasu za pomocą NTP?

18

To pytanie pojawiło się wiele razy w sposób lokalny, to pytanie ma zapewnić preferowaną / najlepszą metodę synchronizacji zegara systemowego za pomocą NTP.

Rozwiązanie powinno poprawnie obsługiwać wiele problemów, takich jak:

  1. Popraw czas na szybkie uruchomienie, gdy zegar ma duże przekrzywienie.

  2. Podaj konfigurację, która chroni i / lub koryguje sytuacje, w których zegar może czasem rozwinąć duże przekrzywienie w czasie.

  3. Solidne rozwiązanie, które może szybko obsłużyć i zsynchronizować czas, gdy pojawią się pewne problemy, takie jak: „serwer czasu nie był dostępny podczas rozruchu” lub „internet jest niedostępny podczas rozruchu”.

Idealnym rozwiązaniem byłby pojedynczy plik konfiguracyjny NTP, który jest w stanie obsłużyć to wszystko.

Bibliografia

Wiele elementów, które zapewnią „ostateczne” rozwiązanie, jest rozłożonych na stronie U&L w takich pytaniach:

Będą inni, ale są to te, które uważałem za istotne.

slm
źródło
1
czat dyskusja na temat zakresu tego pytania
Gilles „SO- przestań być zły”
1
FYI: Planowanie pracy nad kompleksową odpowiedzią na to pytanie. Zobacz dziennik czatów zaczynający się na chat.stackexchange.com/transcript/message/11350138#11350138
derobert
# 2 nie powinno się zdarzyć, jeśli ntpd jest uruchomiony
dfc
@dfc - może się tak zdarzyć, gdy maszyna wirtualna zostanie wstrzymana, a następnie wznowiona, są też inne sytuacje, w których może się zdarzyć.
slm
@slm „rozwija” oznacza skok czasu w skosie po ponownym uruchomieniu VM? Wygląda na to, że w ciągu kilku godzin po restarcie ntpd powinien opanować przekrzywienie. Na pewno nie pogorszy tego. Jakie są inne sytuacje?
dfc,

Odpowiedzi:

6

Ponieważ nie możesz skorygować dużych odchyleń czasu za pomocą ntp (chyba że masz kilka godzin, aby zegar nadrobił lub zwolnił), robię to:

service ntpd stop
ntpdate us.pool.ntp.org
usługa start NTTP

Codziennie go kupuję. Umieszczam także ntpdate w skrypcie init, aby działał przed uruchomieniem ntp po uruchomieniu, ponieważ ponowne uruchomienie i cykle zasilania są najbardziej prawdopodobnymi / częstymi zdarzeniami, które psują czas systemowy.

Andrzej
źródło
Jeśli ntpd działa poprawnie, dlaczego musisz go zatrzymać i uruchomić? To wydaje się okropnym pomysłem.
dfc
3
Narzędzie ntpdate nie będzie działać, jeśli jest uruchomiony program ntpd.
Grizly,
4

Co szukasz jest ntpdz --panicgateopcją.

Opcja paniki pozwala na pierwszą regulację po ntpdrozpoczęciu dowolnego rozmiaru. Dotyczy to dokładnie opisanego przypadku użycia, w którym pojawia się maszyna, a jej zegar jest niesamowicie niedokładny. Gdy ntpd zaczyna się z włączoną tą opcją, może chwilę potrwać, zanim znajdzie serwer i ustanowi synchronizację z nim.

Ta opcja sama w sobie rozwiązuje twój przedmiot nr 1.

# 2 to waniliowy ntpd. Ntpd przechowuje plik drift, który jest częstotliwością skosu zegara twojego systemu.

# 3 jest również taki sam jak # 1. --panicgateOpcja nie ogranicza się natychmiast, gdy zaczyna ntpd, to ogranicza się do „pierwszej korekty”, gdy korekta taka jest.

Patrick
źródło
wpisanie ntpd --panicgate, a następnie data absolutnie nic nie robi
AlxVallejo 27.04.16
Czy modyfikujesz pliki init, aby je przekazać, -gczy jest dostępna odpowiednia opcja ntp.conf?
Jérôme,
Właśnie zdałem sobie sprawę, że -gjest już domyślnie używany w mojej instalacji Debiana, ale nie wiem, w którym pliku init / config jest to zrobione.
Jérôme,
2

Użyj chronyd / chronyc zamiast ntp / ntpdate. Jest to już domyślna metoda w Fedorze i, jak sądzę, będzie w RHEL 7.0, gdy tylko będzie gotowa.

Dokumentacja znajduje się na stronie http://chrony.tuxfamily.org/

cel
źródło