Настройка времени сервера Ubuntu

Обновлено: 05.07.2024

В этом руководстве вы узнаете, как проверить и установить часовой пояс в Ubuntu 20.04 с помощью команды timedatectl.

Существует множество способов проверить часовой пояс, от использования команды date до команды timedatactl. Однако установка часового пояса значительно упрощена и улучшена с помощью команды timedatactl.

Команда timedatectl позволяет выводить подробную информацию о дате вашей системы во времени, от информации NTP до сравнения вашей даты с датой UTC.

Несмотря на то, что мы ограничили объем этого руководства только тем, что касаемся настройки вашего часового пояса, timedatectl имеет дополнительные функции, которые очень полезны для конфигураций, связанных со временем и датой.

Проверка текущего часового пояса

Текущий часовой пояс задается в файле /etc/timezone. Чтобы просмотреть текущий часовой пояс, вы можете просмотреть содержимое файла.

Еще один способ — использовать команду даты. Указав аргумент +%Z , вы можете вывести текущее название часового пояса вашей системы.

Чтобы получить название часового пояса и смещение, вы можете использовать команду данных с аргументом +"%Z %z". Заглавная буква Z печатает название часового пояса, а строчная буква z выводит смещение времени.

Команду timedatectl можно использовать для получения более подробной информации о текущих настройках времени и даты в вашей системе.

Установка часового пояса

Для установки часового пояса будет использоваться команда timedatectl. Прежде чем установить новый часовой пояс, вы можете узнать, какие часовые пояса доступны. Вы можете вывести список всех доступных часовых поясов с помощью команды timedatectl list-timezones.

Список часовых поясов очень обширен. Чтобы сузить список только до вашего региона, вы можете передать результаты команде grep. Например, чтобы сузить результаты поиска только до Северной и Южной Америки, можно выполнить следующую команду.

Как только вы узнаете часовой пояс, на который хотите настроить сервер Ubuntu, вы можете установить его с помощью команды timedatactl set-timezone.

а затем подтвердите, что ваши изменения были применены, выполнив команду timedatactl.

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

Изменение часового пояса

В этом разделе показано, как выполнить эту задачу, используя графический интерфейс пользователя (GUI) или командную строку (терминал).

Использование графического интерфейса

Использование командной строки (терминал)

Использование командной строки (автоматическое)

    Найдите подробное описание часового пояса, который вы хотите настроить.

При необходимости это можно написать в сценарии.

Синхронизация времени с помощью NTP

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

Network Time Protocol (NTP) — это протокол UDP/IP для синхронизации времени по сетевому соединению. Обычно клиент запрашивает текущее время с сервера, а затем использует ответ сервера для установки собственных часов.

Помимо этого простого описания, есть много сложностей. Существует несколько уровней NTP-серверов, причем NTP-серверы первого уровня подключены к атомным часам (часто через GPS), а серверы второго и третьего уровня распределяют нагрузку по фактической обработке запросов по Интернету. Клиентское программное обеспечение намного сложнее, чем вы думаете, поскольку оно должно учитывать задержки связи и корректировать время таким образом, чтобы это не влияло на другие процессы, работающие в системе. К счастью, вся эта сложность скрыта от пользователя.

Использование графического интерфейса

Командная строка ntpd

ntpdate — довольно грубый инструмент, поскольку он может корректировать время только один раз в день в виде одной большой коррекции. Демон ntp ntpd гораздо тоньше, так как он вычисляет дрейф ваших системных часов и постоянно корректирует их с небольшими приращениями. При использовании ntpd нет больших исправлений, которые могли бы привести, например, к несогласованности журналов. Стоимость — небольшая вычислительная мощность и память, но для современной системы это ничтожно мало.

Чтобы настроить ntpd в Ubuntu 7.04 и выше

Чтобы настроить ntpd до Ubuntu 7.04:

Изменение серверов времени NTP

Использование графического интерфейса

Командная строка ntpdate

ntpdate больше не устанавливается по умолчанию в Ubuntu. Файл /etc/cron.daily/ntpdate также больше не существует

ntpdate, если он установлен, запустит его один раз во время загрузки, чтобы настроить ваше время в соответствии с NTP-сервером Ubuntu. Тем не менее, системные часы могут значительно отклоняться между перезагрузками, если время между перезагрузками велико. В этом случае имеет смысл время от времени корректировать время. Самый простой способ сделать это — заставить cron запускать его каждый день. В своем любимом редакторе создайте (требуется sudo) файл /etc/cron.daily/ntpdate, содержащий:

Убедитесь, что вы сделали этот новый файл исполняемым:

ntpdate

Вы также можете найти NTP-серверы в своем регионе в Google и добавить их в свою конфигурацию. Чтобы проверить, работает ли сервер, просто введите sudo ntpdate ntp.server.name и посмотрите, что произойдет.

Конфликты времени нескольких загрузочных систем

Операционные системы хранят и извлекают время в аппаратных часах, расположенных на материнской плате, чтобы они могли отслеживать время, даже когда в системе нет питания. Большинство операционных систем (Linux/Unix/Mac) по умолчанию хранят время на аппаратных часах в формате UTC, хотя некоторые системы (особенно Microsoft Windows) сохраняют время на аппаратных часах как «местное» время. Это вызывает проблемы в системе с двойной загрузкой, если обе системы видят аппаратные часы по-разному.

Преимущество использования аппаратных часов в формате UTC заключается в том, что вам не нужно менять аппаратные часы при перемещении между часовыми поясами или когда начинается или заканчивается переход на летнее время (DST), поскольку UTC не имеет смещения летнего времени или часового пояса.< /p>

Переключить Linux на использование местного времени проще и надежнее, чем изменить Windows на использование UTC, поэтому системы Linux/Windows с двойной загрузкой, как правило, используют местное время.

Начиная с Intrepid (8.10), UTC=yes используется по умолчанию.

Заставить Windows использовать UTC

Примечание. Первоначально этот метод не поддерживался в Windows Vista и Server 2008, но вернулся в Vista SP2, Windows 7, Server 2008 R2 и Windows 8/8.1.

Примечание. Служба времени Windows по-прежнему будет записывать местное время в RTC независимо от параметра реестра, указанного выше, при завершении работы, поэтому удобно отключить службу времени Windows с помощью этой команды (если синхронизация времени по-прежнему требуется в Windows, используйте любую третью решение для синхронизации времени вечеринки):

Отмена изменения

Вы можете создать файл со следующим содержимым, а затем дважды щелкнуть его, чтобы объединить исходные изменения, как указано выше:

Если служба времени Windows была отключена, снова включите ее с помощью команды:

Заставить Linux использовать «местное» время

Чтобы сообщить вашей системе Ubuntu, что аппаратные часы настроены на "местное" время:

Системы до Ubuntu 15.04 (например, Ubuntu 14.04 LTS):

  1. редактировать /etc/default/rcS
  2. добавить или изменить следующий раздел

Системы Ubuntu 15.04 и выше (например, Ubuntu 16.04 LTS):

  1. откройте терминал и выполните следующую команду

Устранение неполадок

Установлен ли NTP?

Запустите dpkg-query --list ntp\* и найдите ntp-simple (до 7.04) или ntp. Также могут быть полезны пакеты ntpdate и ntp-doc.

Какой файл конфигурации он использует?

По умолчанию NTP использует /etc/ntp.conf. Если /etc/ntp.conf.dhcp существует, демон NTP предполагает, что вы используете DHCP для переопределения настроек NTP, и вместо этого использует этот файл.

Как настроить NTP для использования DHCP

Ваш сервер DHCP должен быть настроен для предоставления серверов NTP (может быть полезен man dhcpd.conf).

Ваш клиент должен быть настроен на использование предоставленных NTP-серверов. Для этого добавьте ntp-servers в строку request (или даже require) в /etc/dhcp3/dhclient.conf . Вы также можете использовать функции по умолчанию и prepend, чтобы указать серверы NTP по умолчанию/дополнительные. Подробнее см. в man dhclient.conf и man dhcp-options.

Запущен ли NTP?

NTP чаще всего дает сбой, если не может разрешить серверы в своем файле конфигурации при запуске (это может произойти, если DNS недоступен во время загрузки). Кроме того, если NTP не может поддерживать достаточно точные локальные часы, он сдается и завершает работу (см. ниже).

Попробуйте sudo /etc/init.d/ntp status, чтобы проверить, запущен ли NTP, и sudo /etc/init.d/ntp restart, чтобы перезапустить его, если необходимо.

У меня есть различные системы в ненадежных сетях, поэтому я использую простой скрипт для возврата NTP, если это необходимо:

Какие серверы вы используете?

Запустите grep ^server /etc/ntp.conf или grep ^server /etc/ntp.conf.dhcp, чтобы выяснить, какие серверы вы пытаетесь использовать.

Можно ли разрешить эти серверы?

Если host $servername дает сбой, возможно, у вас есть проблемы с DNS, которые необходимо исправить ($servername — это имя сервера, указанное в вашем файле конфигурации, см. выше ).

Можно ли получить доступ к этим серверам?

Если ntptrace $servername дает сбой, возможно, у вас есть проблемы с маршрутизацией/брандмауэром, которые необходимо исправить ($servername — это имя сервера, указанное в вашем файле конфигурации, см выше). NTP использует UDP-порт 123. При необходимости убедитесь, что эти пакеты правильно проходят NAT через шлюз.

Что задумал NTP?

ntpq --numeric --peers

--numeric удаляет запросы DNS. Вы можете не включать его, но не удивляйтесь, если разрешенные имена не будут совпадать с именами в файле ntp.conf.

delay указывается в миллисекундах.Оно должно быть смещение в миллисекундах и является текущим наилучшим предположением о разнице во времени между вашей системой и сервером. Чем меньше, тем лучше! джиттер — это оценка погрешности локальной тактовой частоты. Чем меньше, тем лучше. Если он постоянно высок, возможно, ваша система дрейфует (см. ниже)

Почему NTP постоянно перезагружается/не работает?

NTP пытается исправить ваши местные часы, чтобы они отображали точное время. Если ваши локальные часы дрейфуют слишком быстро (обычно проблемы с аппаратным обеспечением или блокировки IRQ или что-то в этом роде), то NTP либо продолжает сбрасывать ваши часы, либо сдается и завершает работу. Исправьте проблему с дрейфом, и NTP будет вести себя корректно.

UbuntuTime (последним удаленным пользователем minacel 2016-07-13 19:49:24)

Материалы этой вики доступны по бесплатной лицензии, подробности см. в разделе Авторские права / Лицензия
Вы можете внести свой вклад в эту вики, подробности см. в Руководстве по вики

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

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

Предпосылки

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

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

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

Как правило, ваш сервер генерирует выходные данные с часовым поясом UTC по умолчанию.

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

Однако если вы хотите изменить свой часовой пояс, вы можете использовать команду timedatectl.

Сначала запустите эту команду, чтобы создать список доступных часовых поясов:

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

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

Вы можете еще раз проверить свои изменения по дате выполнения:

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

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

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

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

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

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

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

Если ваши выходные данные показывают, что служба NTP не активна, включите ее с помощью timedatectl :

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

Переключение на ntpd

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

Перед установкой ntpd необходимо отключить timesyncd, чтобы предотвратить конфликт двух служб друг с другом. Вы можете сделать это, отключив синхронизацию времени по сети с помощью следующей команды:

Убедитесь, что синхронизация времени отключена:

Убедитесь, что ваши выходные данные гласят: NTP service: inactive . Это означает, что timesyncd остановлен. Теперь вы готовы установить пакет ntp с помощью apt .

Сначала запустите apt update, чтобы обновить локальный индекс пакетов:

Затем запустите apt install ntp, чтобы установить этот пакет:

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

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

Заключение

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

Хотите узнать больше? Присоединяйтесь к сообществу DigitalOcean!

Присоединяйтесь к нашему сообществу DigitalOcean, насчитывающему более миллиона разработчиков, бесплатно! Получайте помощь и делитесь знаниями в нашем разделе "Вопросы и ответы", находите руководства и инструменты, которые помогут вам расти как разработчику и масштабировать свой проект или бизнес, а также подписывайтесь на интересующие вас темы.


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

Часовой пояс вашей системы устанавливается автоматически в процессе установки Ubuntu, но его можно изменить. В этой статье показано, как настроить или изменить часовой пояс вашей системы Ubuntu 20.04 (LTS) или 20.10.

Способы изменения часового пояса в Ubuntu

Существует два основных метода изменения часового пояса в Ubuntu:

  • Использование графического интерфейса
  • Использование командной строки

Способ 1. Изменение часового пояса с помощью графического интерфейса

Чтобы изменить текущий системный часовой пояс с помощью графического интерфейса, перейдите в окно «Настройки», нажав «Настройки» после щелчка правой кнопкой мыши на рабочем столе. Вы также можете просто выполнить поиск по запросу «Настройки» в меню «Приложения».


После того, как вы нажмете «Настройки», появится окно «Настройки». Нажмите «Дата и время», чтобы изменить настройки времени и даты.


Часовой пояс автоматически изменяется при подключении к Интернету, но вы все равно можете изменить его, выбрав параметр «Часовой пояс». Появится новое окно с картой мира; вы можете найти свое текущее местоположение в строке поиска или просто нажать на карту, чтобы установить часовой пояс:


Измените часовой пояс в соответствии со своими предпочтениями и закройте окно.

Метод 2: изменение часового пояса с помощью командной строки

Чтобы изменить часовой пояс с помощью командной строки, откройте терминал и проверьте текущую дату и время с помощью следующей команды:


Согласно выходным данным, текущий статус системы установлен на UTC (Всемирное скоординированное время).

Чтобы получить список всех доступных часовых поясов, введите приведенную ниже команду:


Определите соответствующий часовой пояс в соответствии с вашим местоположением и введите часовой пояс в терминале следующим образом:


Теперь проверьте текущий статус вашего местоположения с помощью следующей команды:


Заключение

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

Об авторе

Варда Батул

Я дипломированный инженер-программист и целеустремленный писатель Linux. Я также люблю читать последние книги по Linux. Кроме того, в свободное время я люблю читать книги по личностному развитию.

Читайте также: