
Введение
Точный хронометраж стал одним из важнейших компонентов современного развертывания программного обеспечения. Будь то убедившись, что журналы записаны в правильном порядке обновления или базы данных применяются правильно, вне синхронизации времени может привести к ошибкам, повреждению данных и других проблем, трудных для отладки.
Ubuntu 16.04 имеет синхронизацию времени, построенную и активированную по умолчанию с помощью сервиса timesyncd в Systemd. В этой статье мы рассмотрим некоторые основные команды, связанные со временем, убедитесь, что timesyncd активен, и знаете, как установить альтернативную службу сетевого времени.
Предпосылки
Перед началом этой статьей вам потребуется сервер Ubuntu 16.04 с некорневой, sudo поддержкой пользователя, как описано в этом учебнике по первоначальной настройки сервера Ubuntu 16.04.
Основные команды по навигации во времени
Самая основная команда для того, чтобы узнать время на вашем сервере date. Любой пользователь может ввести эту команду для распечатки даты и времени:
date
Mo May 15 20:33:50 UTC 2017
Чаще всего ваш сервер по умолчанию укажет UTC часовой пояс, как подчеркивается в выводе выше. UTC является координированное время, время на ноль градусов долготы. Последовательно используя Universal Time уменьшает путаницу когда ваша инфраструктура охватывает несколько временных зон.
Если у вас есть различные требования, и необходимо изменить часовой пояс, вы можете использовать команду timedatectl, чтобы сделать это.
Во-первых, список доступных часовых поясов:
timedatectl list-timezones
Список часовых поясов будет распечатан на экране. Вы можете нажать SPACE на страницу вниз, и b на страницу вверх. После того, как вы найдете правильный часовой пояс, введите q чтобы выйти из списка.
Теперь установите часовой пояс с timedatectl set-timezone, убедившись в том, чтобы заменить выделенную часть ниже на часовой пояс, который вы нашли в списке. Вы должны будете использовать sudo с timedatectl чтобы сделать эти изменения:
sudo timedatectl set-timezone America/New_York
Вы можете проверить изменения, выполнив date еще раз:
date
Mo May 15 20:33:50 EDT 2017
Зона времени должна отразить вновь выбранное значение.
Теперь, когда мы знаем, как проверить часы и установить временные зоны, давайте удостоверимся, что наше время синхронизируются правильно.
Управление timesyncd с timedatectl
До недавнего времени большинство синхронизации времени в сети не была обработана с помощью демона протокола сетевого времени или ntpd. Этот сервер подключается к пулу других серверов NTP, которые обеспечивают постоянное и точное обновления времени.
По умолчанию в Ubuntu теперь использует timesyncd вместо ntpd. timesyncd подключается к тем же серверам времени и работает примерно так же, но более легкие и более интегрированный с Systemd и командами низкого уровня Ubuntu.
Мы можем запросить статус timesyncd, запустив timedatectl без аргументов. Вам не нужно использовать sudo в этом случае:
timedatectl
Local time: Mo 2017-05-15 20:33:50 EDT
Universal time: Mo 2017-05-15 20:33:50 EDT
RTC time: Mo 2017-05-15 20:33:50
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 не включен, включите его с помощью timedatectl:
sudo timedatectl set-ntp on
Выполните timedatectl еще раз, чтобы подтвердить статус сетевого времени. Это может занять минуту для фактической синхронизации, но в конце концов , как Network time on: и NTP synchronized:следует читать yes.
Переключение на NTPD
Хотя timesyncd прекрасно подходит для большинства целей, некоторые приложения, которые очень чувствительны даже к малейшим возмущениям во времени может быть лучше обслуживаться ntpd, так как он использует более изощренные методы, чтобы постоянно и постепенно поддерживать системное время.
Перед установкой ntpd, мы должны выключить timesyncd:
sudo timedatectl set-ntp no
Убедитесь в том, что timesyncd выключен:
timedatectl
Посмотрите Network time on: no на выходе. Это средство timesyncd было остановлено. Теперь мы можем установить пакет ntp с apt-get:
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 по умолчанию с timesyncd, а также устанавливать ntpd. Если у вас есть более сложные потребности хронометража, чем то, что мы рассмотрели здесь, вы можете ссылаться в официальной документации NTP, а также взглянуть на пуле проекта NTP, глобальной группы добровольцев, обеспечивающих большую часть мировой инфраструктуры NTP.
Редактор: AndreyEx
Поделиться в соц. сетях: