Синхронизация времени Ubuntu Linux

По умолчанию в Ubuntu 12.04 синхронизация времени не включена. Включить синхронизацию времени можно несколькими способами. Для начала потребуются привилегии суперпользователя.

1. Самый простой способ - это отредактировать файл /etc/default/ntpdate поменяв yes на no.

NTPDATE_USE_NTP_CONF=no

В этом случае будет использован список серверов времени из этого же файла разделенного пробелами.

# List of NTP servers to use  (Separate multiple servers with spaces.)
# Not used if NTPDATE_USE_NTP_CONF is yes.
NTPSERVERS="ntp.ubuntu.com"

Вероятно, синхронизация времени происходит при перезагрузки ОС или при поднятии сетевого интерфейса. Что не очень удобно на постоянно работающем сервере. Следующий способ лишен этого недостатка.

2. Второй способ - это поставить клиента ntp в cron.

Пропишите в конец файла /etc/crontab следующую строку:

10 *    * * *   root    ntpdate -s ntp.ubuntu.com

Не забудьте про обязательную пустую строку в конце этого файла. Иначе cron не запустится и в /var/log/syslog упадет ошибка:

ERROR (Missing newline before EOF, this crontab file will be ignored)

Синхронизация времени в данном случае будет выполняться на 10-й минуте каждого часа.
Ключ -s нужен для того, что бы писать сообщения о работе клиента в системный лог вместо стандартного вывода. В качестве сервера времени можно указать любой другой, например: timeserver.ru.
Дело в том, что в Ubuntu по умолчанию предустановлен клиент сервера времени ntpdate в отличие от самого сервера ntp. Удобство этого способа в том, что не нужно ничего доустанавливать. Если же есть желание использовать полный функционл и сервера и клиента, то существует третий способ.

3. Установка NTP-сервера

aptitude install ntp

В этом случае нет необходимости изменять файл /etc/default/ntpdate. Значение переменной должно быть выставлено в "yes":

# The settings in this file are used by the program ntpdate-debian, but not
# by the upstream program ntpdate.
# Set to "yes" to take the server list from /etc/ntp.conf, from package ntp,
# so you only have to keep it in one place.
NTPDATE_USE_NTP_CONF=yes

Как понятно из написанного, список серверов времени будет браться из файла /etc/ntp.conf пакета ntp. К тому же будет использоваться скрипт /usr/sbin/ntpdate-debian вместо стандартного клиента ntpdate. Который в свою очередь помимо /etc/ntp.conf может брать информацию из /var/lib/ntp/ntp.conf.dhcp и /etc/openntpd/ntpd.conf, если NTPDATE_USE_NTP_CONF = "yes", а если — "no", то из /var/lib/ntpdate/default.dhcp при наличии этих файлов.
После установки пакета NTP мы сами становимся сервером времени и можем раздавать сигналы точного времени клиентским компьютерам. Например, используйя второй способ на клиентских машинах, указав в качестве сервера времени IP адрес нашего сервера.
Протокол NTP использует 123 порт протокола UDP. Не забудьте соответствущим образом настроить файрвол при его наличии. Например, для iptables это будет выглядеть следующим образом:

# NTP settings
iptables -A output -p udp -s 192.168.8.100 --sport 1024:65535 -d 0/0 --dport 123 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A input -p udp -s 0/0 --sport 123 -d 192.168.8.100 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT

Проверить возможность синхронизации локально на сервере можно командой:

ntpdate -q localhost

ключ -q проверяет синхронизацию, но не устанавливает время.

Метки: . Закладка Постоянная ссылка.

Добавить комментарий

Ваш e-mail не будет опубликован.

*