Точное управление временем и датой в Linux (ntp linux timezone time clock)
Ключевые слова: ntp, linux, timezone, time, clock, (найти похожие документы)
From: Иван Песин <http://gazette.linux.ru.net/team/i_pesin.html>
Newsgroups: Russian Linux Gazette
Date: Mon, 28 Feb 2004 14:31:37 +0000 (UTC)
Subject: Точное управление временем и датой в Linux
Avi Alkalay <avi at unix.sh>, <avi at br.ibm.com>
Консультант по Linux и открытым стандартам :: Старший разработчик по ИТ и ПО
IBM Linux Impact Team :: http://ibm.com/linux
Brad Knowles - Предложение использовать pool.ntp.org и NTP-сервера
второго уровня (stratum 2)
Kent Borg - Предложение использовать ntpq вместо ntpdc
----------------------------
Содержание
1. Общие концепции даты и времени
2. Что такое часовые пояса?
2.1. Летнее время
2.2. Примеры часовых поясов
2.3. Механизм часовых поясов в Linux
3. Корректная настройка вашей системы Linux
3.1. Установка часового пояса
3.2. Установка аппаратных часов
4. Точная мировая синхронизация времени
4.1. NTP: Сетевой протокол времени (Network Time Protocol)
4.2. Построение простой архитектуры синхронизации времени
4.3. Конфигурации NTP
4.4. Наблюдение за синхронизацией
4.5. Настройка автозапуска демона NTP при загрузке
A. О данном документе
----------------------------
1. Общие концепции даты и времени
Для определения текущего времени в некотором регионе планеты,
компьютеру необходимо знать две вещи:
1. Правильное всеобщее скоординированное время (UTC, всеобщее время,
такое же как и в Гринвиче, но не GMT)
2. Часовой пояс текущего региона
В компьютерах, кроме того, существуют аппаратные часы, которые
используются для установки времени операционной системы.
Дата и время операционной системы (с этого момента мы будем
пользоваться словом "дата" или "время") устанавливается при загрузке
специальным скриптом, который считывает значение аппаратных часов,
производит вычисление часового пояса (в BIOS не хранится информация о
часовом поясе) и устанавливает часы операционной системы. После этого,
часы операционной системы и BIOS полностью независимы. Следовательно,
через некоторое время между ними может быть разница в несколько
секунд. Какие же часы содержат правильное время? Если вы не делали
специальных настроек -- ни те, ни другие.
В этом документе мы обсудим, как сделать чтобы время этих часов
максимально точным.
_________________________________________________________________
2. Что такое часовые пояса?
Часовые пояса -- это геофизическое деление земного шара на части по 15
градусов каждая, начиная с Гринвича, в Англии. Это деление было
введено с тем, чтобы помочь людям узнать текущее время в других частях
света.
Идею часовых поясов предложил канадский инженер-связист С.Флемминг --
Прим.пер.
В наши дни это деление принимает и политическую окраску, так как
иногда людям нужно, чтобы их время совпадало со временем в других, не
очень отдаленных, местах. Более того, существует понятие летнего
времени, которое позволяет более эффективно использовать световой
день.
Часовой пояс обычно определяется правительством государства, либо
неким астрономическим институтом, и представляется в виде аббревиатуры
из трех или четырех букв. В разделе 2.2 приведены примеры.
Если вы хотите узнать текущее время в разных регионах нашей планеты,
это можно сделать на странице http://timezoneconverter.com
_________________________________________________________________
2.1. Летнее время
По соображениям экономного использования энергии и максимального
использования светового дня, правительства создали понятие летнего
времени. Наши часы переводятся на час вперед, что позволяет людям
эффективней использовать световой день. Фактически, это реализуется в
пределах понятия часового пояса. Исходное время (UTC) остается
неизменным.
Ниже мы узнаем, как автоматически включать и выключать летнее время в
Linux.
_________________________________________________________________
2.2. Примеры часовых поясов
Нет ничего лучше примеров:
Таблица 1. Бразильские часовые пояса. Сдвиг относительно UTC
Название и сдвиг Название летнего времени и сдвиг Местоположение
BREST -2:00 BREDT -1:00 Fernando de Noronha
BRST -3:00 BRDT -2:00 Sгo Paulo, Rio, Brasilia, Minas Gerais, North East Region, South Region,etc
BRWST -4:00 BRWDT -3:00 West Region
BRAST -5:00 BRADT -4:00 Acre
Пожалуйста, присылайте дополнительные данные, такие как таблица
часовых поясов для США.
_________________________________________________________________
2.3. Механизм часовых поясов в Linux
Системы Linux используют динамические часовые пояса GLIBC, основанные
на /etc/localtime. Этот файл представляет собой ссылку на (или копию)
информационный файл зоны, обычно расположенный в каталоге
/usr/share/zoneinfo.
С геофизической точки зрения существуют 60^o/15^o=24 часовых пояса. Но
для упрощения и учета различных политических вариаций (таких как
летнее время), в каталоге /usr/share/zoneinfo вы найдете сотни файлов
для множества городов и стран, хотя, конечно, не для всех.
В некоторых странах, например в Бразилии, нет фиксированной даты
начала летнего времени. Она определяется каждый год, за несколько
месяцев до начала лета, и вы можете оказаться в ситуации, когда
придется изменять информационный файл зоны, созданный командой zic из
текстового файла, пример которого приведен ниже.
(А я считал, что это только у нас в стране [читающий выбирает свою
страну] такой бардак. :) Прим.ред.)
Пример 1. Текстовый информационный файл бразильских часовых поясов
# Brazil Time Zones
#
# Brazilian Time Zones are:
# BREST: East of Brasilia. Fernando de Noronha.
# BRST: Brasilia, Sгo Paulo, Rio, Northeast, South etc
# BRWST: West of Brasilia. Mato Grosso, Manaus
# BRAST: Acre.
#
# In daylight saving time, letter 'S' changes to 'D'.
#
# To install, make:
#
# # zic Brazil.txt
#
# Zone files will be installed in /usr/share/zoneinfo (depends on your
# distribution). Then, make a symbolic link from your zone to /etc/localtime:
#
# # ln -sf /usr/share/zoneinfo/Brazil/Brasilia /etc/localtime
#
#
# If you have updates and new standards to this file please send to
#
# Avi Alkalay <avi @ unix.sh>
#
# Last update: 18 Nov 2000
# This file is available at http://avi.alkalay.net/linux/zoneinfo/
#
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Brazil 1931 1932 - Oct 3 0:00 1:00 D
Rule Brazil 1932 1933 - Mar 31 0:00 0 S
Rule Brazil 1949 only - Dec 1 0:00 1:00 D
Rule Brazil 1950 only - Apr 30 0:00 0 S
Rule Brazil 1950 1952 - Dec 1 0:00 1:00 D
Rule Brazil 1951 only - Apr 16 0:00 0 S
Rule Brazil 1952 only - Mar 31 0:00 0 S
Rule Brazil 1953 only - Feb 28 0:00 0 S
Rule Brazil 1963 only - Oct 23 0:00 1:00 D
Rule Brazil 1964 only - Mar 1 0:00 0 S
Rule Brazil 1965 only - Jan 31 0:00 1:00 D
Rule Brazil 1965 only - Mar 31 0:00 0 S
Rule Brazil 1965 only - Dec 1 0:00 1:00 D
Rule Brazil 1966 1968 - Mar 1 0:00 0 S
Rule Brazil 1966 1967 - Nov 1 0:00 1:00 D
Rule Brazil 1984 only - Nov 2 0:00 1:00 D
Rule Brazil 1985 only - Mar 15 0:00 0 S
Rule Brazil 1985 only - Nov 2 0:00 1:00 D
Rule Brazil 1986 only - Mar 15 0:00 0 S
Rule Brazil 1986 only - Oct 25 0:00 1:00 D
Rule Brazil 1987 only - Feb 14 0:00 0 S
Rule Brazil 1987 only - Oct 25 0:00 1:00 D
Rule Brazil 1988 only - Feb 7 0:00 0 S
Rule Brazil 1988 only - Oct 16 0:00 1:00 D
Rule Brazil 1989 only - Jan 29 0:00 0 S
Rule Brazil 1989 only - Oct 15 0:00 1:00 D
Rule Brazil 1990 only - Feb 11 0:00 0 S
Rule Brazil 1990 only - Oct 21 0:00 1:00 D
Rule Brazil 1991 only - Feb 17 0:00 0 S
Rule Brazil 1991 only - Oct 20 0:00 1:00 D
Rule Brazil 1992 only - Feb 9 0:00 0 S
Rule Brazil 1992 only - Oct 25 0:00 1:00 D
Rule Brazil 1993 only - Jan 31 0:00 0 S
Rule Brazil 1993 only - Oct 17 0:00 1:00 D
Rule Brazil 1994 only - Feb 20 0:00 0 S
Rule Brazil 1994 only - Oct 16 0:00 1:00 D
Rule Brazil 1995 only - Feb 19 0:00 0 S
Rule Brazil 1995 only - Oct 15 0:00 1:00 D
Rule Brazil 1996 only - Feb 11 0:00 0 S
Rule Brazil 1996 only - Oct 06 0:00 1:00 D
Rule Brazil 1997 only - Feb 16 0:00 0 S
Rule Brazil 1997 only - Oct 06 0:00 1:00 D
Rule Brazil 1998 only - Mar 01 0:00 0 S
Rule Brazil 1998 only - Oct 11 0:00 1:00 D
Rule Brazil 1999 only - Feb 21 0:00 0 S
Rule Brazil 1999 only - Oct 03 0:00 1:00 D
Rule Brazil 2000 only - Feb 27 0:00 0 S
Rule Brazil 2000 only - Oct 8 0:00 1:00 D
Rule Brazil 2001 only - Feb 18 0:00 0 S
# Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL]
Zone Brazil/DeNoronha -2:00 Brazil BRE%sT
Zone posix/Brazil/DeNoronha -2:00 Brazil BRE%sT
Zone right/Brazil/DeNoronha -2:00 Brazil BRE%sT
Zone Brazil/East -2:00 Brazil BRE%sT
Zone posix/Brazil/East -2:00 Brazil BRE%sT
Zone right/Brazil/East -2:00 Brazil BRE%sT
Zone America/Sao_Paulo -3:00 Brazil BR%sT
Zone America/Rio_de_Janeiro -3:00 Brazil BR%sT
Zone America/Brasilia -3:00 Brazil BR%sT
Zone posix/America/Sao_Paulo -3:00 Brazil BR%sT
Zone posix/America/Rio_de_Janeiro -3:00 Brazil BR%sT
Zone posix/America/Salvador -3:00 Brazil BR%sT
Zone posix/America/Brasilia -3:00 Brazil BR%sT
Zone posix/Brazil/Central -3:00 Brazil BR%sT
Zone posix/Brazil/Brasilia -3:00 Brazil BR%sT
Zone posix/Brazil/Sao_Paulo -3:00 Brazil BR%sT
Zone posix/Brazil/Salvador -3:00 Brazil BR%sT
Zone posix/Brazil/Rio_de_Janeiro -3:00 Brazil BR%sT
Zone right/America/Sao_Paulo -3:00 Brazil BR%sT
Zone right/America/Rio_de_Janeiro -3:00 Brazil BR%sT
Zone right/America/Salvador -3:00 Brazil BR%sT
Zone right/America/Brasilia -3:00 Brazil BR%sT
Zone right/Brazil/Central -3:00 Brazil BR%sT
Zone right/Brazil/Brasilia -3:00 Brazil BR%sT
Zone right/Brazil/Sao_Paulo -3:00 Brazil BR%sT
Zone right/Brazil/Salvador -3:00 Brazil BR%sT
Zone right/Brazil/Rio_de_Janeiro -3:00 Brazil BR%sT
Zone Brazil/Central -3:00 Brazil BR%sT
Zone Brazil/Brasilia -3:00 Brazil BR%sT
Zone Brazil/Sao_Paulo -3:00 Brazil BR%sT
Zone Brazil/Rio_de_Janeiro -3:00 Brazil BR%sT
Zone Brazil/Salvador -3:00 Brazil BR%sT
Zone Brazil/West -4:00 Brazil BRW%sT
Zone Brazil/Manaus -4:00 Brazil BRW%sT
Zone Brazil/Rondonia -4:00 Brazil BRW%sT
Zone Brazil/Roraima -4:00 Brazil BRW%sT
Zone Brazil/Mato_Grosso -4:00 Brazil BRW%sT
Zone posix/Brazil/Manaus -4:00 Brazil BRW%sT
Zone posix/Brazil/Mato_Grosso -4:00 Brazil BRW%sT
Zone right/Brazil/Manaus -4:00 Brazil BRW%sT
Zone right/Brazil/Mato_Grosso -4:00 Brazil BRW%sT
Zone posix/America/Manaus -4:00 Brazil BRW%sT
Zone right/America/Manaus -4:00 Brazil BRW%sT
Zone Brazil/Acre -5:00 Brazil BRA%sT
Блок Rule определяет дату и время изменения часового пояса; в блоке
Zone мы ссылаемся на Rule, которым будем руководствоваться. Обратите
внимание, что имя записи Zone в действительности соответствует имени
файла относительно каталога /usr/share/zoneinfo. В файле определено
несколько различных имен для одного и того же часового пояса, просто
для того, чтобы людям легче было найти их часовой пояс.
Комментарии в этом файле поясняют, как установить часовой пояс с
помощью компилятора zic (который уже включает описания часовых
поясов). Чтобы активизировать установленный часовой пояс, вам остаётся
создать ссылку (или копию) на информационный файл зоны в
/etc/localtime. В некоторых дистрибутивах применяется более
высокоуровневый (и предпочтительный) подход к установке часового
пояса, описанный в разделе 3.1.
После того, как файл /etc/localtime начнет ссылаться на верный
информационный файл зоны, система сразу же начинает обрабатывать время
в соответствии с правилами выбранного часового пояса, а переход на
летнее время будет осуществляться автоматически -- вам ничего не нужно
менять вручную.
Следующий набор команд демонстрирует гибкость механизма часовых поясов
в Linux. Обратите внимание, что все команды были выполнены менее чем
за одну минуту:
bash$ ls -al /etc/localtime
lrwxrwxrwx 1 root root 35 May 22 2001 /etc/localtime -> /usr/share/zoneinfo/Brazil/Brasilia
bash$ date
Fri Mar 29 20:13:38 BRST 2002
bash# ln -sf /usr/share/zoneinfo/GMT /etc/localtime
bash$ date
Fri Mar 29 23:13:47 GMT 2002
bash# ln -sf /usr/share/zoneinfo/Brazil/Brasilia /etc/localtime
bash$ date
Fri Mar 29 20:14:03 BRST 2002
В 20:13 я находился в своем бразильском часовом поясе (BRST). Я
переключился в часовой пояс GMT и мое время изменилось на 23:13! Когда
в вашем часовом поясе подходит дата перехода на летнее время,
происходит нечто подобное, но без смены часового пояса ( т.е. ссылка
/etc/localtime не меняется, как в приведенном примере).
Приложения, запущенные на машине (например, веб-сервер, генерирующий
журнал доступа) почувствует такое изменение, потому очень важно, чтобы
разработчики помнили: концепция полного времени -- это текущее время,
плюс текущий часовой пояс, как описано в разделе 1.
В конце примера я вернулся к своему часовому поясу.
_________________________________________________________________
3. Корректная настройка вашей системы Linux
Для любой операционной системы вам нужно знать ваш часовой пояс. Он
соответствует вашему городу или стране. Кроме того, вам нужно будет
решить, как установить время в BIOS. Могу вам предложить две
стратегии:
Машина только для Linux
В этом случае установите время в BIOS равным всеобщему
скоординированному времени (UTC). Переходы на летнее время
будут автоматически выполняться в соответствии с настройками
часового пояса.
Машина с двумя ОС: Linux и MS Windows
Windows работает со временем более примитивно, чем Linux. Для
Windows время в BIOS -- это всегда ваше местное время, а
переход на летнее время более агрессивный, поскольку при этом
вносятся изменения в аппаратные часы. А поскольку как Linux,
так и Windows при загрузке получают время из аппаратных часов,
в случае двух ОС на одном компьютере, Linux должен обрабатывать
его таким же образом, как и Windows. Потому устанавливайте
время в BIOS равным вашему местному времени.
_________________________________________________________________
3.1. Установка часового пояса
В Red Hat Linux и её производных, установить часовой пояс можно с
помощью утилиты timeconfig, которая имеет приятный пользовательский
интерфейс. Но можно ее использовать и в пакетном режиме:
Пример 2. Утилита конфигурирования часового пояса
bash# timeconfig "Brasil/East" # установить время аппаратных часов равным местному, а часовой пояс -- "Brazil/East"
bash# timeconfig --utc "Brasil/East" # установить время аппаратных часов равным UTC, а часовой пояс -- "Brazil/East"
В любом варианте, утилита меняет файл /etc/sysconfig/clock, который
считывается при загрузке. Его можно отредактировать и вручную, вот как
он выглядит:
Я советую вам устанавливать ваши аппаратные часы, только если вы
понимаете, как настроить точное время (это описано в разделе 4).
Команда hwclock читает и устанавливает аппаратные часы на основании
переданных ему параметров. Доступные параметры описаны в странице
руководства команды. Но если вы используете современный дистрибутив,
вам не нужно пользоваться этой командой. После того, как вы решите,
какое время хранить в аппаратных часах и выберете часовой пояс, для
установки аппаратных часов можно будет использовать высокоуровневую
команду setclock. Вам не нужно передавать параметры команде setclock,
она сама выбирает параметры, которые нужно передать hwclock на
основании ваших установок в операционной системе. Так что всегда стоит
проверять наличие команды setclock.
Но если вы минималист и любите тяжелый труд, вот несколько примеров
использования hwclock:
(Для усиления эффекта "тяжёлого труда" рекомендуется отжаться 24 раза.
По числу часовых поясов. ;)) Прим.ред.)
Пример 4. Использование setclock и hwclock
bash# setclock # Простейший метод установки аппаратных часов
bash# hwclock # считывает время из аппаратных часов
bash# hwclock --systohc --utc # устанавливает время аппаратных часов равным
# UTC на основании системного времени
bash# hwclock --systohc # устанавливает время аппаратных часов р
# авным местному на основании системного времени
bash# hwclock --set --date "22 Mar 2002 13:17" # устанавливает время аппаратных часов
# равным указанной строке
Поскольку время ОС независимо от аппаратных часов, любые изменения в
BIOS будут учтены при следующей загрузке.
Другим вариантом изменения времени в аппаратных часах -- это доступ в
BIOS при загрузке системы. На платформах IBM e-server zSeries
(http://ibm.com/servers/eserver/zseries/os/linux/) это нужно делать на
уровне z/VM, потому что Linux работает в виртуальной машине, созданной z/VM.
_________________________________________________________________
4. Точная мировая синхронизация времени
Точное время на всех ваших системах также важно, как и серьезная
стратегия сетевой безопасности (для достижения которой нужно много
больше простых брандмауэров). Точное время является одним из главных
компонентов системного администрирования, основанного на хорошей
практике, которое ведет к организованности и безопасности. В
администрировании распределенных приложений, веб-сервисов и наблюдении
за безопасностью, точное время -- это необходимость.
_________________________________________________________________
4.1. NTP: Сетевой протокол времени (Network Time Protocol)
Здесь мы не будем останавливаться на подробностях реализации этого
протокола, а сосредоточимся на том, как это замечательное изобретение,
соединенное со всепроникаемостью Интернета, может быть нам полезно. За
дополнительной информацией, обращайтесь на сайт http://www.ntp.org
После настройки NTP будет поддерживать точность времени, выполняя
очень маленькие корректировки часов, такие маленькие, что они никак не
будут влиять на работающие приложения.
Точное время можно получить с помощью специальной аппаратуры,
основанной на частоте электронов атома или циклотронах. Также
существует метод, основанный на GPS (Global Positioning System,
глобальной системе позиционирования). Первый способ более точный, но и
второй весьма неплох. Оба способа требуют специализированного и
дорогого оборудования, но их владельцы (обычно университеты и
исследовательские лаборатории) подключают это оборудование к
компьютерам, на которых запущен демон NTP. Зачастую эти же машины
подключены к Интернету, что в конечном итоге дает нам возможность
бесплатно узнавать точное время.
_________________________________________________________________
4.2. Построение простой архитектуры синхронизации времени
Вам понадобится:
1. Прямое или непрямое (через брандмауэр) соединение с Internet.
2. Выберите несколько NTP-серверов. Можно использовать общедоступный
сервер pool.ntp.org, либо выбрать несколько серверов из
списка серверов времени второго уровня на сайте NTP (http://www.eecis.udel.edu/~mills/ntp/clock2a.html).
Если у вас нет доступа к Internet, ваш администратор WAN (должен быть
толковым парнем) сможет сообщить вам какой-то внутренний адрес.
3. На всех системах, которые вы хотите синхронизировать, должен быть
установлен пакет NTP. Пакет RPM можно найти на компакте вашего
любимого дистрибутива, или же поищите на сайте http://rpmfind.net.
(Не RPM'ом единым жив Linux. Прим.ред.)
Вот пример хорошей архитектуры:
Если вам нужно синхронизировать время на нескольких машинах, не
задавайте им всем в качестве сервера выбранные NTP-сервера. Только
лишь две машины должны иметь доступ к удаленным NTP-серверам,
остальные машины будут синхронизироваться с этими двумя. Мы будем их
называть релейными серверами.
Релейными серверами может стать любая из машин в вашей сети. NTP
занимает мало памяти и процессорного времени. Вам не нужно иметь
выделенную машину.
Tip
Хорошая мысль создать псевдонимы для ваших локальных релейных
серверов, например ntp1.my.com и ntp2.my.com, а на клиентах
использовать только эти имена. Тогда вы сможете при необходимости
легко перенести функции релейного сервера на другую машину (с другим
IP-адресом и именем) без переконфигурации клиентов. Попросите вашего
администратора DNS создать такие псевдонимы.
_________________________________________________________________
4.3. Конфигурации NTP
Для ваших релейных серверов
Отредактируйте файл /etc/ntp.conf и добавьте выбранные сервера:
Пример 5. Файл /etc/ntp.conf на релейных серверах
.
.
server otherntp.server.org # Сервер первого уровня в домене server.org
server ntp.research.gov # Сервер второго уровня в домене research.gov
.
.
Опять таки, можно использовать сервер http://www.fortytwo.ch/time/ или
любой из списка общедоступных серверов времени на сайте NTP.
Для ваших клиентов
Отредактируйте файл /etc/ntp.conf и добавьте свои релейные
сервера:
Пример 6. Файл /etc/ntp.conf на клиентских машинах
.
.
server ntp1.my.com # Первый локальный релей
server ntp2.my.com # Второй локальный релей
.
.
Если UTC-время вашей машины отличается от времени на NTP-сервере
больше чем на минуту, NTP работать не будет. Так что, вам нужно будет
выполнить полную синхронизацию времени. Я рекомендую это делать в
нерабочее время. Эта процедура выполняется только один раз, при
настройке NTP. Ничего более:
Пример 7. Первая синхронизация
bash# ntpdate otherntp.research.gov (1)
24 Mar 18:16:36 ntpdate[10254]: step time server 200.100.20.10 offset -15.266188 sec
bash# ntpdate otherntp.research.gov (2)
24 Mar 18:16:43 ntpdate[10255]: adjust time server 200.100.20.10 offset -0.000267 sec
(1)
Первая полная синхронизация. Мы опаздывали на 15 секунд.
(2)
Вторая полная синхронизация, для уверенности. Теперь мы
фактически не отстаем, что очень хорошо.
Последнее, что нужно сделать -- это запустить или перезапустить демоны
NTP на всех машинах:
bash# service ntpd restart
_________________________________________________________________
4.4. Наблюдение за синхронизацией
Теперь у вас все настроено. NTP будет держать время в синхронизации.
Этот процесс можно наблюдать при помощи команды NTP Query (ntpq):
Пример 8. Состояние синхронизации
bash# ntpq -p
remote refid st t when poll reach delay offset jitter
-jj.cs.umb.edu gandalf.sigmaso 3 u 95 1024 377 31.681 -18.549 1.572
milo.mcs.anl.go ntp0.mcs.anl.go 2 u 818 1024 125 41.993 -15.264 1.392
-mailer1.psc.edu ntp1.usno.navy. 2 u 972 1024 377 38.206 19.589 28.028
-dr-zaius.cs.wis ben.cs.wisc.edu 2 u 502 1024 357 55.098 3.979 0.333
+taylor.cs.wisc. ben.cs.wisc.edu 2 u 454 1024 347 54.127 3.379 0.047
-ntp0.cis.strath harris.cc.strat 3 u 507 1024 377 115.274 -5.025 1.642
*clock.via.net .GPS. 1 u 426 1024 377 107.424 -3.018 2.534
ntp1.conectiv.c 0.0.0.0 16 u - 1024 0 0.000 0.000 4000.00
+bonehed.lcs.mit .GPS. 1 u 984 1024 377 25.126 0.131 30.939
-world.std.com 204.34.198.40 2 u 119 1024 377 24.229 -6.884 0.421
Значение каждой колонки
remote
Имя удаленного NTP-сервера. Если указать ключ -n, вы получите
IP-адреса серверов вместо имён.
refid
Указывает, откуда каждый сервер получает время в данный момент.
Это может быть имя хоста или что-то вроде .GPS., указывающее на
источник глобальной системы позиционирования (Global
Positioning System).
st
Stratum (уровень) это число от 1 до 16, указывающее на точность
сервера. Единица означает максимальную точность, 16 -- сервер
недоступен. Ваш уровень будет равен уровню наименее точного
удаленного сервера плюс 1.
poll
Интервал между опросами (в секундах). Значение будет изменяться
между минимальной и максимальной частотой опросов. В начале
интервал будет маленьким, чтобы синхронизация происходила
быстро. После того как часы синхронизируются, интервал начинает
увеличиваться, чтобы уменьшить трафик и нагрузку на популярные
сервера времени.
reach
Восьмеричное представление массива из 8 бит, отражающего
результаты последних восьми попыток соединения с сервером. Бит
выставлен, если удаленный сервер ответил.
delay
Количество времени (в секундах) необходимого для получения
ответа на запрос "который час? ".
offset
Наиболее важное поле. Разница между временем локального и
удаленного серверов. В ходе синхронизации это значение должно
понижаться, указывая на то, что часы локальной машины идут все
точнее.
jitter
Дисперсия (Jitter) -- это мера статистических отклонений от
значения смещения (поле offset) по нескольким успешным парам
запрос-ответ. Меньшее значение дисперсии предпочтительнее,
поскольку позволяет точнее синхронизировать время.
Значение знаков перед именами серверов
- Означает, что локальный сервис NTP не предпочитает этот сервер
+ Означает, что локальный сервис NTP предпочитает этот сервер
x Отмечает плохой хост
* Указывает на текущий наиболее предпочтительный сервер
_________________________________________________________________
4.5. Настройка автозапуска демона NTP при загрузке
Вы можете захотеть, чтобы NTP работал все время, даже если вы
перезагрузитесь. Тогда на каждой машине выполните такую команду:
bash# chkconfig --level 2345 ntpd on
В результате демон ntp будет автоматически запускаться при загрузке.
Если ваша машина работает длительное время (месяцы, года) работает без
перезагрузок, вы обнаружите значительное расхождение между аппаратными
и (теперь очень точными) системными часами. Современные дистрибутивы
Linux копируют системное время в аппаратные часы каждый раз при
останове системы, с помощью механизма, аналогичного команде
setclock. Таким образом, при следующей загрузку системное время будет
практически точным, как в момент останова системы.
_________________________________________________________________
A. Об этом документе
Copyright 2002, Avi Alkalay.
Этот документ должен распространяться согласно GNU Free
Documentation License.
Этот документ опубликован в следующих местах:
* Официальный сайт [Исходный код в XML (DocBook)]
http://avi.alkalay.net/linux/docs/TimePrecision/
* LinuxDoc, в качестве документа HOWTO
http://en.tldp.org/HOWTO/TimePrecision-HOWTO/
* Takeo Nakano <nakano at apm.seikei.ac.jp> японский перевод
http://www.linux.or.jp/JF/JFdocs/TimePrecision-HOWTO/
_________________________________________________________________