Próbuję użyć NTPD, aby zaktualizować czas mojego komputera z systemem Linux do określonego serwera NTP.
Oto scenariusz:
Za każdym razem, gdy uruchamia się maszyna z systemem Linux, chcę aktualizować czas z serwera NTP, a jeśli to się nie powiedzie, chcę próbować co 5 minut, aż do pomyślnego zakończenia (maksymalnie 2 godziny).
Rozejrzałem się i stwierdziłem, że powinienem (?) Użyć NTPD i użyć polecenia, takiego jak:
#ntpdate ntp.server.com
(przed uruchomieniem NTPD)
#ntpd some_options_to_start
Pytania są następujące:
- Skąd mam wiedzieć, czy czas został pomyślnie zaktualizowany przez te polecenia?
- Czy mogę ustawić interwał aktualizacji czasu z NTTP? (czy muszę użyć czegoś takiego
sleep
i zapętlić zdo
..while
/for
w powłoce?)
Zauważ, że chcę wykonać powyższe polecenia w skrypcie powłoki i umieszczę powłokę na serwerze WWW. Następnie klienci (z przeglądarką przeglądarki internetowej) wykonają skrypt na stronie internetowej. Muszę więc sprawdzić, czy aktualizacja się powiodła, czy nie, aby wysłać wynik do klienta (przez Internet).
Użyj ntpstat.
źródło
ntpq -p
nie pokazywał żadnych peerów. Więc nie ufam temu narzędziu.Aby odpowiedzieć na pierwsze pytanie,
ntpdate
zwykle mówi ci, co zrobił, a może nie.Demon NTP
ntpd
działa stale i/etc/ntp.conf
co jakiś czas prosi serwery NTP (zwykle skonfigurowane ) o czas. Nie powinieneś uruchamiać skryptu co 5 minut.ntpdate
powinien doprowadzić maszynę do synchronizacji z serwerem intpd
będzie działać w tle i utrzymywać synchronizację. Nie ustawiasz interwału, który próbuje ntpd, dostosowuje interwał na podstawie tego, jak postrzega lokalny zegar dryfuje z serwerów, i jakości połączeń z serwerami.Możesz użyć programu o nazwie,
ntpdc
aby zobaczyć, contpd
zachowuje jako informacje:Myślę, że liczba, którą zwykle interesujesz, to „przesunięcie”, czyli liczba sekund, w których zegar lokalny jest wyłączony z zegara serwera.
Jako
man
stronantpdc
stanów dla polecenia „peers”:Zatem „przesunięcie” jest w sekundach.
Wygląda na
ntpdc
to, że jest przestarzałe, zastąpione przezntpq
.ntpq
ma interaktywne polecenie „peers”, które daje „offset” w milisekundach. Serwer posiada zarówno RedHatntpdc
intpq
, więc trzeba być ostrożnym.źródło
ntp-wait
został stworzony dla tego problemu.Pięć minut
man ntp-wait
i powinieneś być gotowy ...źródło
Dodałem do skryptu bash @BillTHor również sprawdzenie kodu wyjścia ntpdstat> 0:
[AKTUALIZACJA], ponieważ skrypt korzystający z danych wyjściowych ntpq był nieużyteczny dla dużych przesunięć (więcej niż 4 cyfry przesunięcia) Próbowałem nowej wersji, używając tylko ntpstat:
źródło
Przesunięcie NTP można uzyskać za pomocą następującego potoku UNIX:
Liczbę rówieśników NTP można uzyskać za pomocą następującego potoku UNIX:
Do biura NTP używamy:
Do liczenia rówieśników NTP używamy:
Konfiguracja monitorowania NTP gotowa na Zabbix (źródło: Joyent):
Wtyczki monitorujące NTP gotowe do Nagios:
check_ntp_offset:
check_ntp_peers:
Naprawdę powinienem pozwolić, aby ostrzeżenia i progi krytyczne w skryptach Nagios były konfigurowalne za pomocą -w i -c. Bez tego nie są w pełni gotowe do wtyczek. Dalsze wskazówki na ten temat w samouczku tutaj: http://www.kernel-panic.it/openbsd/nagios/nagios6.html
źródło
Chrony twierdzi, że lepiej obsługuje przypadek użycia niż NTPd (włączanie / wyłączanie sieci i urządzenia, zawieszanie itp.). Widzieć
http://fedoraproject.org/wiki/Features/ChronyDefaultNTP
RE, dlaczego uważam, że chronny jest dobry: Przyszedł wstępnie zainstalowany na mojej maszynie Fedora i nigdy nie miałem z tym problemu (używałem go od lat). Nigdy wcześniej nie miałem problemów z ntpd, ale jeśli przeczytasz w podanym przeze mnie linku, jest kilka informacji, dlaczego chrony jest lepszy dla nie zawsze na komputerach. Właśnie dlatego zasugerowałem op, aby wypróbował to, może, ale nie musi, działać lepiej dla niego. Jest to więc kolejna dobra opcja do wypróbowania, zanim zaczniesz zbyt wiele dostrajać, optymalizować i hakować ntpd.
źródło
źródło
To samo co poprzednia odpowiedź powyżej, ale z niewielką modyfikacją, ponieważ poprzednie polecenie uruchomi instrukcję if dla tylu przesunięć, tzn. Jeśli przesunięcie wynosi 3, to wydrukuje NTP w granicach 0,1 .... 3 razy przed zamknięciem. Może to być denerwujące, jeśli masz serwer, który jest daleko od synchronizacji. Prawdopodobnie istnieje również sposób na usunięcie pętli for ...
źródło