Поиск по сайту:

Как настроить синхронизацию времени в Ubuntu 16.04


Введение

Точный хронометраж стал важнейшим компонентом современного развертывания программного обеспечения. Будь то обеспечение записи журналов в правильном порядке или правильное применение обновлений базы данных, рассинхронизация времени может привести к ошибкам, повреждению данных и другим трудным для отладки проблемам.

Ubuntu 16.04 имеет встроенную синхронизацию времени, которая активируется по умолчанию с помощью службы systemd timesyncd. В этой статье мы рассмотрим некоторые основные команды, связанные со временем, убедимся, что timesyncd активен, и узнаем, как установить альтернативную сетевую службу времени.

Предпосылки

Прежде чем приступить к этому руководству, вам понадобится сервер Ubuntu 16.04 с пользователем без полномочий root и с поддержкой sudo, как описано в этом руководстве по настройке сервера Ubuntu 16.04.

Навигация по основным командам времени

Самая основная команда для определения времени на вашем сервере — date. Любой пользователь может ввести эту команду, чтобы распечатать дату и время:

  1. date
Output
Wed Apr 26 17:44:38 UTC 2017

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

Если у вас другие требования и вам нужно изменить часовой пояс, вы можете использовать для этого команду timedatectl.

Сначала перечислите доступные часовые пояса:

  1. timedatectl list-timezones

Список часовых поясов будет напечатан на вашем экране. Вы можете нажать ПРОБЕЛ, чтобы перейти на страницу вниз, и b, чтобы перейти на страницу вверх. Как только вы найдете правильный часовой пояс, запишите его, затем введите q, чтобы выйти из списка.

Теперь установите часовой пояс с помощью timedatectl set-timezone, убедившись, что выделенная часть ниже заменена часовым поясом, который вы нашли в списке. Вам нужно будет использовать sudo с timedatectl, чтобы внести это изменение:

  1. sudo timedatectl set-timezone America/New_York

Вы можете проверить свои изменения, снова запустив date:

  1. date
Output
Wed Apr 26 13:55:45 EDT 2017

Аббревиатура часового пояса должна отражать вновь выбранное значение.

Теперь, когда мы знаем, как проверить часы и установить часовые пояса, давайте удостоверимся, что наше время синхронизируется правильно.

Управление timesyncd с помощью timedatectl

До недавнего времени большая часть синхронизации сетевого времени выполнялась с помощью демона протокола сетевого времени или ntpd. Этот сервер подключается к пулу других NTP-серверов, которые предоставляют ему постоянные и точные обновления времени.

Установка Ubuntu по умолчанию теперь использует timesyncd вместо ntpd. timesyncd подключается к тем же серверам времени и работает примерно так же, но более легковесен и лучше интегрирован с systemd и низкоуровневой работой Ubuntu.

Мы можем запросить статус timesyncd, запустив timedatectl без аргументов. В этом случае вам не нужно использовать sudo:

  1. timedatectl
Output
Local time: Wed 2017-04-26 17:20:07 UTC Universal time: Wed 2017-04-26 17:20:07 UTC RTC time: Wed 2017-04-26 17:20:07 Time zone: Etc/UTC (UTC, +0000) Network time on: yes NTP synchronized: yes RTC in local TZ: no

Это распечатывает местное время, универсальное время (которое может совпадать с местным временем, если вы не переключились с часового пояса UTC) и некоторую информацию о состоянии сетевого времени. Сетевое время включено: да означает, что timesyncd включен, а Синхронизация NTP: да означает, что время успешно синхронизировано.

Если timesyncd не включен, включите его с помощью timedatectl:

  1. sudo timedatectl set-ntp on

Запустите timedatectl еще раз, чтобы подтвердить состояние сетевого времени. Фактическая синхронизация может занять минуту, но в конечном итоге как Сетевое время включено:, так и Синхронизация NTP: должны читаться как yes.

Переключение на нтпд

Хотя timesyncd подходит для большинства целей, некоторые приложения, очень чувствительные даже к малейшим отклонениям во времени, могут лучше обслуживаться с помощью ntpd, поскольку он использует более сложные методы для постоянного и постепенного отслеживания системного времени.

Перед установкой ntpd мы должны отключить timesyncd:

  1. sudo timedatectl set-ntp no

Убедитесь, что timesyncd выключен:

  1. timedatectl

Найдите в выходных данных Время работы сети: нет. Это означает, что timesyncd был остановлен. Теперь мы можем установить пакет ntp с помощью apt-get:

  1. sudo apt-get install ntp

ntpd запустится автоматически после установки. Вы можете запросить у ntpd информацию о состоянии, чтобы убедиться, что все работает:

  1. sudo ntpq -p
Output
remote refid st t when poll reach delay offset jitter ============================================================================== 0.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000 1.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000 2.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000 3.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000 ntp.ubuntu.com .POOL. 16 p - 64 0 0.000 0.000 0.000 -makaki.miuku.ne 210.23.25.77 2 u 45 64 3 248.007 -0.489 1.137 -69.10.161.7 144.111.222.81 3 u 43 64 3 90.551 4.316 0.550 +static-ip-85-25 130.149.17.21 2 u 42 64 3 80.044 -2.829 0.900 +zepto.mcl.gg 192.53.103.108 2 u 40 64 3 83.331 -0.385 0.391

ntpq — это инструмент запросов для ntpd. Флаг -p запрашивает информацию о NTP-серверах (или одноранговых узлах), к которым подключен ntpd. Ваш вывод будет немного отличаться, но вы должны указать серверы пула Ubuntu по умолчанию, а также несколько других. Имейте в виду, что для установки соединения ntpd может потребоваться несколько минут.

Заключение

В этой статье мы показали, как просматривать системное время, изменять часовые пояса, работать с timesyncd по умолчанию в Ubuntu и устанавливать ntpd. Если у вас есть более сложные потребности в хронометраже, чем то, что мы рассмотрели здесь, вы можете обратиться к проекту NTP Pool Project, глобальной группе добровольцев, обеспечивающей большую часть мировой инфраструктуры NTP.