Synchronizacja zegara systemowego poprzez NTP

[ niedziela, 25 Październik 2009 ]

Czas – rzecz niezwykła. Coś, co jest i płynie. Zapewne każdy z nas chce znać go jak najdokładniej, gdyż to według niego cywilizacja ludzka planuje swój każdy dzień. W związku z tym możemy zadbać o to, by nasz systemowy zegar pokazywał godzinę z dokładnością nawet do kilku milisekund. W tym celu stworzony został protokół NTP oraz jego klient/serwer ntpd.

ntpd działa w naszym systemie jako daemon. Przy uruchomieniu łączy się z serwerami czasu i wstępnie koryguje zegar systemowy pod warunkiem, że różnica nie jest większa niż 1000 sekund (dlatego nie nada się do przestawiania zegara z czasu letniego na zimowy i odwrotnie). Następnie działa w tle i stopniowo przyspiesza albo zwalnia zegar, by uzyskać jak najdokładniejszy czas, uśredniając różnice z podanych serwerów.

Na wstępie powinniśmy ustawić godzinę na tyle dokładnie, żeby różnica nie przekroczyła wspomnianych 1000 sekund. Możemy to zrobić ręcznie bądź poleceniem:

# ntpdate ntp.icm.edu.pl

Następnie upewniamy się, że mamy zainstalowany w systemie pakiet ntp (dostępny w Slackware).

Pora przejść do edycji pliku konfiguracyjnego /etc/ntp.conf. Opcjami server podajemy serwery protokołu NTP, dzięki którym ntpd będzie mógł korygować czas. Jeżeli chcemy mieć dostęp do logów, warto użyć opcji logfile . Resztę opcji pozostawiamy domyślnie. Pomijając komentarze i puste linie, ntp.conf może wyglądać tak:

server 150.254.183.15
server 193.110.137.171
server 193.0.71.133
fudge   127.127.1.0 stratum 10
driftfile /etc/ntp/drift
broadcastdelay  0.008
restrict default noquery nomodify
restrict 127.0.0.1
logfile /var/log/ntp

Warto zwrócić uwagę na plik /etc/ntp/drift, w którym przechowywana będzie częstotliwość korygowania zegara. Wartość tworzona jest na podstawie obserwacji jego dokładności przez ntpd.

Teraz wypada zdefiniować w pliku /etc/ntp/step-tickers serwery NTP, z którymi będzie łączył się ntpdate przy starcie. Mogą być te same, co w ntp.conf:

150.254.183.15
193.110.137.171
193.0.71.133

Na zakończenie ustawiamy systemową strefę czasową poprzez skopiowanie odpowiedniego pliku do /etc/localtime. Dla Polski:

# cp -f /usr/share/zoneinfo/Europe/Warsaw /etc/localtime

Ostatni ruch to nadanie skryptowi startowemu atrybutu wykonywalności:

# chmod 755 /etc/rc.d/rc.ntpd

Od następnego uruchomienia systemu daemon ntpd rozpocznie swoją pracę. Ażeby zobaczyć statystyki dotyczące poszczególnych serwerów w porównaniu do naszego zegara, wydajemy polecenie:

# ntpq -p

Pamiętajmy jedynie, by nie mieszać ntpd z innymi synchronizatorami. Po dokładniejszy opis opcji zapraszam do dokumentacji.

Wiadomość źródłowa: Synchronizacja zegara systemowego poprzez NTP (SlackBlog)

This website uses IntenseDebate comments, but they are not currently loaded because either your browser doesn't support JavaScript, or they didn't load fast enough.

RSS feed

Komentarze

Brak komentarzy.

Komentarze do tego wpisu są wyłączone.

Reklama :)

jakilinux.org - Linux krok po kroku!