Синхронизация времени через Интернет в Ubuntu
Как настроить точное время в Ubuntu (Даты, время, ntp, синхронизация часов)
Общие сведения
Время в BIOS компьютера под управлением Linux течет в UTC.
Простая синхронизация времени
Тестировалось в Ubuntu 8.04, Ubuntu 10.04
- Смотрим текущее время для пользователя:
$ date
Mon Jan 3 15:05:19 CET 2011 Смотрим текущее время UTC:
$ date -u
Mon Jan 3 14:06:07 UTC 2011
Команда для синхронизации времени с каким-либо сервером:
sudo ntpdate ntp.ubuntu.com
где ntp.ubuntu.com - IP-адрес или домен сервера, с которым синхронизируемся. Можно поставить эту команду в
crontab
и в общем-то, проблема точного времени решена. Однако, есть способ лучше - установка сервера синхронизации времениntp
. Обратите внимание, что командаntpdate
не будет работать, если работает демон ntp. Также, надо смотреть файлик/etc/default/ntpdate
- обычно там сервера берутся из конфигурационного файла/etc/ntp.conf
сервера ntp, который по умолчанию не поставлен и не работает. Если ставить командуntpdate
вcron
, то надо использовать ключ-s
для перенаправления отчета вsyslog
.
Установка и настройка сервера точного времени ntp
Тестировалось в Ubuntu 8.04, Ubuntu 10.04
Устанавливаем NTP:
sudo aptitude install ntp
Прописываем в конфигурационном файле
/etc/ntp.conf
адреса серверов точного времени, с которыми будем синхронизироваться:# You do need to talk to an NTP server or two (or three).
server ntp0.zenon.net server time.nist.gov server ntp.ubuntu.com Перезапускаем демона ntp. Ubuntu 10.04:
sudo service ntp restart
Ubuntu 8.04:
sudo /etc/init.d/ntp restart
Разное
Посмотреть, насколько время на этом компьютере отстает от времени на другом:
$ sudo ntpdate -q ntp0.zenon.netserver 195.2.64.5, stratum 1, offset -0.004825, delay 0.07951 3 Jan 15:27:15 ntpdate[9824]: adjust time server 195.2.64.5 offset -0.004825 sec
Установка точного времени
- Вручную:
sudo ntpdate -bs ntp.ubuntu.com
- Автоматом: http://www.oslinux.ru/node/216
Настройка часового пояса (timezone) на Ubuntu Server для сервера и пользователя. Пакет tzdate
- Для сервера:
dpkg-reconfigure tzdata
- НЕ ЗАПУСКАЛ!!! Использовать с осторожностью. Для пользователя. В папке пользователя в файле профиля
~/.profile
(создать его, если он еще не существует), внести следующую строку:TZ='Europe/Moscow'; export TZ
tzselect
- утилита позволит посмотреть корректный код для вышеприведенной команды.
Установить текущее московское (зимнее) время: date --set=MMDDHHmm[CC]yy[.ss]
Так команда #data 062916342008
устанавливает 29 Июня 2008 года 4:36 после обеда.
В нашем мире все относительно. И время не исключение. Если точное время наручных часов зависит от их стоимости и производителя, то время на компьютере зависит, в первую очередь, от частоты синхронизации с серверами точного времени.Автоматическая синхронизация точного времени с сервером расположенным в Интернете - это хороший способ держать электронные часы ОС всегда "подведенными". Благодаря этому на вашем компьютере часы будут показывать всегда актуальное время.
Как работает синхронизация времени через Интернет?
Синхронизация времени производится посредством специального протокола передачи данных - NTP (Network Time Protocol). Этот протокол включает в себя набор сложных алгоритмов, которые позволяют с большой точностью синхронизировать время (до тысячных миллисекунд расхождения).
Есть более упрощенная версия этого протокола - SNTP (Simple Network Time Protocol), который используется в сетях, где не требуется высокая точность синхронизации (до 1 сек. расхождения).
Вся модель синхронизации времени NTP выглядит в виде дерева. В "кроне" этого дерева находятся "первичные сервера". Таких серверов во всем мире несколько штук. На них чаще всего установлены атомные часы и другие дорогостоящие хронометры. Синхронизировать время с "первичными" серверами у Вас не получится либо из-за их большой загруженности, либо из-за ограничения самими серверами.

После этого могут идти сервера третьего, четвертого уровня и т. д., к которым чаще всего относятся сервера синхронизации времени различных провайдеров и других IT-компаний.
Настройка синхронизации времени в Linux Ubuntu
По-умолчанию в операционной системе Ubuntu, начиная с версии 9.10, время синхронизируется автоматически при каждом запуске ОС. Но не лишнем будет это проверить и убедится в правильности работы синхронизации.
Чтобы синхронизировать время в Ubuntu нам нужно:
- Установить пакет синхронизации времени ntp:# sudo apt-get install ntp
- Добавить NTP-сервера, с которыми будем синхронизировать время. Для этого требуется открыть конфигурационный файл /etc/ntp.conf для редактирования:# sudo gedit /etc/ntp.conf
и в конце добавить все NTP-сервера из списка (полный перечень общедоступных NTP-серверов можно найти здесь):
- ntp1.imvp.ru
- ntp.psn.ru
- time.nist.gov
- pool.ntp.org
- ru.pool.ntp.org
Должно получится так:
# If you want to listen to time broadcasts on your local subnet, de-comment the
# next lines. Please do this only if you trust everybody on the network!
#disable auth
#broadcastclient
server ru.pool.ntp.org
server pool.ntp.org
server time.nist.gov
server ntp.psn.ru
server ntp1.imvp.ru
- Настраиваем автоматическую синхронизацию при каждой загрузке ОС. Для этого открываем конфигурационный файл /etc/rc.conf:# sudo gedit /etc/rc.conf
в котором редактируем параметр ntpd_enable. Должно получиться так:
ntpd_enable=»YES»Обратите внимание на кавычки. Такое написание правильное.
После каждого включения компьютера ваше время будет синхронизировано через Интернет и всегда будет актуальным. Если есть необходимость синхронизировать время вручную, то делается это командой:
В качестве сервера можно указать любой другой NTP-сервер или через пробел указать несколько серверов.