Решение: ставим программу 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 и прописываем там правильное зеркало точного времени, например:
А можно не лазить, настройки по умолчанию (в Debian, по крайней мере) разумны. При следующей перезагрузке / перезапуске ntp ваши часы снова синхронизируются.server ntplocal.example.com prefer
server timeserver.example.org
server ntp2a.example.net
Ссылки:
Краткая справка по настройке возможности получения точного времени здесь. Стоит почитать замечательную статью Линукс, Часы и Время и FreeBSD-шное руководство, в котором, в частности, сделан упор на "серверную" часть ntp.
У меня как раз отдельно стоящая машина, стоит ntpdate, синхронизацию при загрузке я отключил так как подключаюсь по ADSL вручную. ntpdate у меня запускается при поднятии интерфейса.
ОтветитьУдалитьА нельзя при загрузке действовать в параллельном потоке? По идее тогда и не придётся ждать минуту. Если машина редко выключается, то я бы использовал cron.
ОтветитьУдалитьУ меня как раз отдельно стоящая машина, стоит ntpdate, синхронизацию при загрузке я отключил так как подключаюсь по ADSL вручную.
ОтветитьУдалитьДебиановский пакет любит рекомендовать поставить ещё и сервер, который сразу прописывается в стартовых скриптах и начинает усиленно синхронизоваться. ПОэтому я об этом отдельно и сказал.
А нельзя при загрузке действовать в параллельном потоке?
По идее можно - в смысле, ntpdate& - это имелось в виду? Мысль, кстати. Но мне сервер пока что не сдался, так что синхронизуюсь иногда... ленивый я :-)
Ага, именно это. Поскольку ntp не влияет ни на что (в отличие от, например, hotplug'а, который лучше так не запускать), то его вполне можно запустить в параллельном потоке.
ОтветитьУдалитьЕсть (теперь?) ntpdate-debian и искать сервера не нужно.
ОтветитьУдалить@Igor комментирует...
ОтветитьУдалитьПоскольку ntp не влияет ни на что (в отличие от, например, hotplug'а, который лучше так не запускать), то его вполне можно запустить в параллельном потоке.
Вполне. Но у меня обычная пользовательская машина, так что это не критично. За идею спасибо.
@paulcarroty комментирует...
Есть (теперь?) ntpdate-debian и искать сервера не нужно.
А он же вроде и раньше был (сервер), разве нет?