Большинство операционных систем, установленных на компьютерах x86, требуют, чтобы системные часы показывали локальное время. Linux может работать с системным таймером, отсчитывающим либо локальное время, либо UTC, а также поддерживает отдельные программные часы, установленные в соответствии с UTC. Если на компьютере установлена только система Linux, желательно применять UTC, так как при этом нет необходимости переводить таймер на летнее и зимнее время. Если же на компьютере кроме Linux инсталлирована Windows (или другая операционная система, использующая локальное время), вам придется установить таймер по локальному времени. Кроме того, при этом возникает проблема при переходе на летнее и зимнее время. Устранить ее можно, запуская средства поддержки временного протокола при загрузке системы. Заметьте, что преимущества применения NTP в Linux не распространяются на другие системы, так как при коррекции системных часов Linux не изменяет значение аппаратного таймера. Для приведения аппаратного таймера в соответствие с системными часами можно использовать команду hwclock --systohc --localtime; в этом случае на аппаратном таймере устанавливается локальное время. Если на вашем компьютере показания времени хранятся в формате UTC, то при вызове данной команды надо заменить --localtimeна --utc.
Временные серверы для Linux
Сервер NTP для работы в Linux реализуется с помощью программы ntpили ее разновидностей: xntp, xntp3и xntpd. Символ x в начале имени означает "экспериментальный" (experimental), что не совсем верно, так как эти программы успешно используются в течение нескольких лет. В именах программ, содержащихся в пакете NTP 4, символ x отсутствует. В составе большинства версий Linux поставляется версия 4 пакета NTP, но нередко встречается также версия 3.
Большинство пакетов NTP содержат сервер NTP и несколько вспомогательных программ. Компоненты пакета описаны ниже.
• ntpd. Основная программа, реализующая сервер NTP. (В некоторых поставках она называется xntpd.) Как было сказано ранее, несмотря на то, что эта программа считается сервером, она объединяет в себе функции клиента и сервера. Для вышестоящих серверов она является клиентом, а для нижележащих программ — сервером. (Вышестоящим считается сервер с меньшим значением уровня.)
• ntpdate. Данная программа намного проще, чем программа ntpd; она реализует лишь функции клиента. Если поддержка точного времени на компьютере не слишком важна, вы можете установить вместо сервера программу ntpdateи обеспечить ее периодические вызовы. Работа ntpdateбудет рассмотрена далее в этой главе.
• ntptrace. В некоторых случаях возникает необходимость проследить источник данных о времени. Данная программа отслеживает путь от локального компьютера к серверу NTP, используемому для синхронизации, и далее вверх по дереву NTP. Такая информация может быть полезной для диагностики системы.
• ntpq. Данная программа осуществляет NTP-мониторинг. Она будет рассмотрена далее в этой главе.
• xntpdc. Эта программа также предназначена для мониторинга и управления системой NTP. Она позволяет выполнять более сложные операции, чем ntpq.
Помимо NTP, в Linux для согласования времени могут быть использованы и другие программы. Одной из таких программ является rdate, которая по своим возможностям напоминает ntpdate; она используется для однократной установки системных часов. Программа rdateвходит в состав некоторых дистрибутивных пакетов, но в ряде пакетов она отсутствует. Эта программа уступает по точности ntpdate. Если ntpdateможет обеспечивать точность порядка нескольких миллисекунд, то rdateимеет точность около секунды.
Структура конфигурационного файла ntp.conf
Для настройки средств NTP используется файл ntp.conf, который обычно размещается в каталоге /etc. Как и во многих других конфигурационных файлах, строки, содержащие комментарии, начинаются с символа #, а в остальных строках задаются различные опции NTP. Наиболее важными из этих опций являются следующие.
• server адрес [key ключ ] [version номер ] [prefer]. Данная опция задает имя сервера, который используется для синхронизации показаний времени с помощью протокола NTP. В качестве адреса может быть задан IP-адрес или имя узла. При необходимости в файл ntp.confможно включить несколько опций server, в результате ваш сервер NTP установит соединение с каждым из указанных серверов и выберет для синхронизации наилучший из них. В составе данной опции может задаваться дополнительная информация. Значение, следующее после key, определяет ключ аутентификации, оно указывается, если доступ к серверу ограничен. Номер версии сообщает о том, какая версия протокола должна быть использована при взаимодействии. Ключевое слово preferуказывает, что данный сервер предпочтительнее других.
Читать дальше