Синхронизация времени в Ubuntu 16.04
Ubuntu | Комментировать запись
Точное хронометрирование – очень важный аспект корректной работы многих современных программ. Из-за неправильного времени на сервере могут возникнуть ошибки, и данные могут быть повреждены (например, при обновлении БД или логировании).
В Ubuntu 16.04 синхронизация времени встроена и включена по умолчанию; за неё отвечает сервис timesyncd. Данное руководство ознакомит вас с базовыми командами для управления временем, научит проверять состояние timesyncd и устанавливать другие сервисы сетевого времени.
Требования
- Сервер Ubuntu 16.04.
- Пользователь с доступом к sudo (руководство нужно выполнить в сессии этого пользователя).
Все необходимые инструкции можно найти здесь.
Основные команды для управления временем
date – основная команда для определения времени на сервере. Любой пользователь может использовать её, чтобы узнать дату и время:
date
Wed Apr 26 17:44:38 UTC 2017
Обычно по умолчанию серверы используют часовой пояс UTC (Coordinated Universal Time) – это всемирное координированное время. UTC последовательно устанавливает время на серверах и минимизирует ошибки в случае если сервера инфраструктуры находятся в разных часовых поясах.
Чтобы изменить часовой пояс, используйте команду timedatectl.
Запросите список доступных поясов:
timedatectl list-timezones
Перемещаться вниз по списку можно с помощью клавиши пробела, а вверх – с помощью b. Выберите часовой пояс, запишите его и нажмите q, чтобы закрыть список.
Используйте следующую команду, указав в ней требуемый часовой пояс:
sudo timedatectl set-timezone America/New_York
Примечание: Вместо America/New_York укажите необходимый часовой пояс.
Убедитесь, что пояс изменился:
date
Wed Apr 26 13:55:45 EDT 2017
Аббревиатура часового пояса будет отражать новое значение.
Управление сервисом timesyncd
До недавнего времени за синхронизацию времени отвечал демон ntpd. Он подключал сервер к пулу серверов NTP, что обеспечивало точное хронометрирование.
Теперь Ubuntu вместо ntpd по умолчанию использует timesyncd. Сервис timesyncd подключается к тем же серверам времени и работает примерно таким же образом, но он легче ntpd и интегрирован с systemd.
Узнать состояние timesyncd позволяет команда timedatectl.
timedatectl
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, оно будет совпадать с местным временем) и дополнительную информацию о состоянии сетевого времени. Строка «Network time on: yes» означает, что сервис timesyncd включен, а «NTP synchronized: yes» указывает, что время было успешно синхронизировано.
Если сервис timesyncd отключен, введите:
sudo timedatectl set-ntp on
После этого снова запросите состояние timesyncd. В строках Network time on и NTP synchronized должно быть значение yes.
Переход с timesyncd на ntpd
В большинстве случаев сервис timesyncd подходит для работы, но если ваши приложения чувствительны к малейшим колебаниям времени, лучше обслуживать их с помощью ntpd, так как этот демон использует более сложные методы синхронизации системного времени.
Прежде чем установить ntpd, отключите timesyncd:
sudo timedatectl set-ntp no
Убедитесь, что timesyncd отключился:
timedatectl
В выводе должна быть строка:
Network time on: no
Теперь можно установить ntp:
sudo apt-get install ntp
Демон ntpd запускается автоматически после установки. Запросите состояние ntpd:
sudo ntpq -p
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 потребуется несколько минут.
Заключение
Теперь вы умеете управлять системным временем сервера Ubuntu.
Больше информации можно найти в документации NTP или на сайте проекта NTP Pool.
Tags: NTP Pool, ntpd, timesyncd, Ubuntu 16.04