Точное время - NTP в Linux

Проблема: Всё вроде было хорошо, всё работало - и тут вы замечаете, что часы на разных компьютерах показывают разное время. Что делать?
Решение: ставим программу ntp, позволяющую быстро синхронизировать часы локального компьютера с серверами точного времени, подсоединёнными ко Всемирной Паутине. Теперь ваши часы в Linux будут всегда показывать точное время, синхронизированное с атомными часами.

Быстро синхронизируем время
Сначала нам бы однократно синхронизировать часы, а уж потом думать о том, как это свалить на компьютер. В Debian GNU/Linux это делается (как и всё прочее) очень просто. Ставим пакеты:

#apt-get install ntp ntpdate
Теперь выбираем сервер точного времени, поближе к вам и не очень загруженный. Список таких серверов можно посмотреть здесь. После чего сервер времени (вместо указанного сервера можно выбрать другой из списка) не мешало бы пощупать:
# ntpdate ntp.remco.org
На что он ответит примерно следующее:
18 Aug 17:32:35 ntpdate[3558]: step time server 80.127.4.179 offset -358.420872 sec
То есть насколько наши часы отстают от правильных. Это мы сейчас устраним. Теперь однократно синхронизируемся с часами на сервере точного времени:
# ntpdate -bs ntp.remco.org
Всё, ваши часы теперь идут точно.
Опять-таки, кроме этого сервера есть ещё куча других, выбирайте ближайший к вам.

Сваливаем синхронизацию времени на компьютер
В принципе, для отдельно стоящей машины можно написать простенький скрипт и запускать время от времени. Дело в том, что если ставить ntp-server на локальной машине, он будет каждый раз при загрузке пытаться связаться с сервером точного времени. Это чревато увеличением времени загрузки на минуту, а то и более. Если уж так хочется - ищем в районе прямой видимости UNIX-машину, постоянно подключенную к Интернету, и ставим сервер туда, а потом используем её как локальное зеркало точного времени.
Ставим пакет:
#apt-get install ntp-server
После этого лезем в конфиг /etc/ntp.conf и прописываем там правильное зеркало точного времени, например:
server ntplocal.example.com prefer
server timeserver.example.org
server ntp2a.example.net
А можно не лазить, настройки по умолчанию (в Debian, по крайней мере) разумны. При следующей перезагрузке / перезапуске ntp ваши часы снова синхронизируются.

Ссылки:
Краткая справка по настройке возможности получения точного времени здесь. Стоит почитать замечательную статью Линукс, Часы и Время и FreeBSD-шное руководство, в котором, в частности, сделан упор на "серверную" часть ntp.

6 комментариев: |высказаться!| RSS-лента дискуссии.|
Анонимный комментирует...

У меня как раз отдельно стоящая машина, стоит ntpdate, синхронизацию при загрузке я отключил так как подключаюсь по ADSL вручную. ntpdate у меня запускается при поднятии интерфейса.

Igor комментирует...

А нельзя при загрузке действовать в параллельном потоке? По идее тогда и не придётся ждать минуту. Если машина редко выключается, то я бы использовал cron.

virens комментирует...

У меня как раз отдельно стоящая машина, стоит ntpdate, синхронизацию при загрузке я отключил так как подключаюсь по ADSL вручную.
Дебиановский пакет любит рекомендовать поставить ещё и сервер, который сразу прописывается в стартовых скриптах и начинает усиленно синхронизоваться. ПОэтому я об этом отдельно и сказал.

А нельзя при загрузке действовать в параллельном потоке?
По идее можно - в смысле, ntpdate& - это имелось в виду? Мысль, кстати. Но мне сервер пока что не сдался, так что синхронизуюсь иногда... ленивый я :-)

Igor комментирует...

Ага, именно это. Поскольку ntp не влияет ни на что (в отличие от, например, hotplug'а, который лучше так не запускать), то его вполне можно запустить в параллельном потоке.

Анонимный комментирует...

Есть (теперь?) ntpdate-debian и искать сервера не нужно.

virens комментирует...

@Igor комментирует...

Поскольку ntp не влияет ни на что (в отличие от, например, hotplug'а, который лучше так не запускать), то его вполне можно запустить в параллельном потоке.

Вполне. Но у меня обычная пользовательская машина, так что это не критично. За идею спасибо.

@paulcarroty комментирует...
Есть (теперь?) ntpdate-debian и искать сервера не нужно.
А он же вроде и раньше был (сервер), разве нет?

Отправить комментарий

Подписаться на RSS-ленту комментариев к этому посту.