На подавляющем большинстве компьютеров используется лишь незначительная часть возможностей, предоставляемых ntpd. Эта программа синхронизирует показания системных часов на узлах локальной сети с точностью до миллисекунд и обеспечивает отклонение от UTC меньше секунды. Кроме того, программа ntpdработает постоянно и корректирует "дрейф" часов в течение дня. Но, как правило, потребности пользователей, работающих в сети, гораздо скромнее, для них вполне допустима погрешность в несколько секунд. Заметьте также, что ntpdпредставляет собой сервер и при работе этой программы на компьютере возникает определенная угроза безопасности системы. Если в программе будет обнаружена ошибка, создающая "лазейку" для злоумышленников (а подобные ошибки были выявлены в ранних реализациях сервера), ваш компьютер окажется открытым для всех пользователей локальной сети, а возможно, и для всей Internet. По этой причине ntpdв некоторых случаях целесообразно заменить программой ntpdate. В качестве клиента службы времени также может применяться программа rdate, но она использует отдельный протокол и уступает ntpdateв точности.
На заметку
В настоящий момент разработчики NTP занимаются модернизацией программы ntpd. Они реализуют в ней возможность однократной коррекции времени так, как это происходит при использовании ntpdate. В последующих версиях NTP программа ntpdateне будет поставляться. Уже сейчас некоторые пакеты NTP 4 распространяются без ntpdate.
Для того чтобы запустить программу ntpdate, надо ввести ее имя и указать адрес сервера, который будет использован для синхронизации времени. Вы можете задать несколько серверов, в этом случае программа автоматически выберет наиболее подходящий из них. Между именем программы и адресом сервера могут присутствовать следующие опции.
• -B. По умолчанию ntpdateпоступает следующим образом. Если погрешность системных часов превышает половину секунды, программа устанавливает новое значение времени; при меньшей погрешности она выполняет подстройку часов, т.е. замедляет или ускоряет их ход. Данная опция указывает на то, что подстройка должна применяться в любом случае, даже если значение ошибки очень велико.
• -b. Данная опция указывает на то, что даже при малом значении ошибки должно устанавливаться новое показание часов.
• -о версия . С помощью этой опции вы можете указать программе версию NTP для использования.
• -р число_показаний_времени . В обычных условиях ntpdateустанавливает системные часы на основании четырех показаний времени, полученных с сервера.
С помощью данной опции вы можете увеличить или уменьшить это значение (но оно должно оставаться в диапазоне от 1 до 8).
• -q. При указании опции -qпрограмма опрашивает сервер, не изменяя значение системного времени. В этом случае сервер не возвращает данные в формате, удобном для восприятия; результаты опроса могут быть использованы для вычисления времени задержки при взаимодействии с сервером.
• -s. Данная опция применяется при запуске программы с помощью инструмента cron.
• -u. В обычных условиях ntpdateиспользует при передаче пакетов стандартный порт 123. С помощью этой опции вы можете указать на необходимость применения непривилегированного порта (с номером выше 1024). В некоторых случаях это приходится делать при работе через брандмауэр.
После запуска программа ntpdateвыводит различные статические данные, в частности, уровень сервера, используемого для синхронизации, смещение и задержку. Если при выполнении программы не возникнет ошибка и если при ее вызове не была задана опция -q, ntpdateскорректирует показания системных часов, установив новое значение либо выполнив их подстройку.
Для периодического запуска программы ntpdateчасто используется инструмент cron. В большинстве случаев достаточно запускать ntpdateодин раз в сутки, но если необходима более высокая точность, ее можно вызывать чаще, например, один раз в день. Периодическое выполнение ntpdateуменьшит NTP-трафик по сравнению с использованием ntpd.
Внимание
Если вы используете для синхронизации времени общедоступный сервер, не планируйте вызов ntpdateна полуночь. Почему-то многие администраторы считают, что полночь — наилучшее время для коррекции системных часов, в результате в это время на сервер обрушивается лавина запросов. Указывайте для вызова ntpdateлюбое другое подходящее время, например 1:23 или 3:48. Это обеспечит более равномерную нагрузку на сервер, а ваша служба времени будет работать более точно и надежно, так как при обращении к серверу не возникнут непредвиденные задержки.
Читать дальше