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)


Brak komentarzy.