На подавляющем большинстве компьютеров используется лишь незначительная часть возможностей, предоставляемых
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. Это обеспечит более равномерную нагрузку на сервер, а ваша служба времени будет работать более точно и надежно, так как при обращении к серверу не возникнут непредвиденные задержки.
Использование Samba для предоставления данных о времени
Как вы уже имели возможность убедиться, NTP — чрезвычайно полезный протокол, позволяющий поддерживать с высокой точностью показания системных часов на компьютерах под управлением Linux. Кроме NTP, существуют и другие протоколы подобного назначения. Один из них реализован в составе протоколов SMB/CIFS, используемых для разделения файлов и принтеров. (Эти протоколы и реализующий их продукт Samba рассматривались в главе 7.) Если вы планируете запустить сервер NTP на компьютере, на котором установлен сервер Samba, примите во внимание тот факт, что гораздо проще сконфигурировать Samba для предоставления данных о времени, чем инсталлировать клиенты NTP на каждом из Windows-компьютеров. (Samba не позволяет устанавливать системное время, обращаясь к серверу SMB/CIFS, работающему под управлением Windows.)
Опция временного сервера в конфигурационном файле Samba
Как вы уже знаете, конфигурационный файл
smb.conf
используемый для настройки сервера Samba, состоит из нескольких разделов, большинство из которых описывает разделяемые каталоги. Однако первый раздел с именем
[global]
содержит установки по умолчанию, а также опции, которые не могут быть включены в описания разделяемых объектов. Одна из этих опций, time server, позволяет активизировать временной сервер. Для этого надо включить в файл
smb.conf
следующее выражение:
time server = Yes
Данное значение опции указывает на то, что сервер Samba должен отвечать на запросы клиентов SMB/CIFS и предоставлять им сведения о текущем времени. Вы можете задавать данное значение опции независимо от того, используется ли на вашем компьютере
ntpdate
,
rdate
или другая программа. Однако следует заметить, что для того, чтобы сервер Samba предоставлял точные данные о времени, следует принять меры для синхронизации системных часов этого компьютера.
На заметку
Протокол SMB/CIFS не обеспечивает такой точности установки времени, как NTP. Сразу после выполнения процедуры синхронизации времени разница в показаниях системных часов различных Windows-клиентов может составлять около секунды.
Настройка Windows-клиента для автоматической коррекции системного времени
Для того чтобы установить текущее время на клиентской машине под управлением Windows, надо выполнить следующую команду: