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

Как установить время, часовой пояс и синхронизировать часы в Linux


В этой статье вы узнаете, как установить время, часовой пояс и синхронизировать системные часы Linux с NTP с помощью timedatectl, systemd-timesyncd и chrony. :

Команда «timedatectl» является утилитой для дистрибутивов на базе RHEL и Debian и является частью системы управления и менеджера служб «systemd», служа заменой старой традиционной команды date, используемой в дистрибутивах Linux на основе демона «sysvinit».

Команда timedatectl позволяет просматривать и изменять настройки системных часов и их конфигурацию. С помощью этой команды вы можете установить или изменить текущие дату, время и часовую зону, а также включить автоматическую синхронизацию системных часов с удалённым сервером NTP.

В этом руководстве я покажу вам, как управлять временем на вашей системе Linux, устанавливая дату, время, часовой пояс и синхронизируя время с NTP через терминал с помощью timedatectl, systemd-timesyncd и chrony.

Всегда полезно поддерживать правильное время на вашем сервере или системе Linux, и это может иметь следующие преимущества:

  • Обеспечьте своевременное выполнение системных задач, так как большинство задач в Linux управляются с помощью времени.
  • Точное время для регистрации событий и другой информации в системе.
  • Правильная синхронизация для распределённых систем и приложений.
  • Необходимо для протоколов безопасности, таких как Kerberos и проверка сертификатов SSL/TLS.

Как найти и установить местный часовой пояс в Linux

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

timedatectl  status

Проверка времени и даты в системе Linux

В приведённом выше выводе RTC время — это время аппаратных часов.

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

timedatectl 
OR
timedatectl | grep Time

Проверьте часовой пояс вашей системы Linux

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

timedatectl list-timezones

Список всех часовых поясов в системе Linux

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

timedatectl list-timezones |  egrep  -o "Asia/B.*"
timedatectl list-timezones |  egrep  -o "Europe/L.*"
timedatectl list-timezones |  egrep  -o "America/N.*"

Найдите свой местный часовой пояс в Linux

5. Чтобы установить локальный часовой пояс в Linux, мы будем использовать переключатель set-timezone, как показано ниже.

sudo timedatectl set-timezone "Asia/Kolkata"
timedatectl status

Установите локальный часовой пояс на системе Linux

Всегда рекомендуется использовать и устанавливать координированное всемирное время, UTC.

sudo timedatectl set-timezone UTC
timedatectl status

Настройка времени вашей системы на UTC

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

failed to set time zone: invalid timezone

Как установить дату и время в Linux

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

Установить время в Linux

6. Чтобы установить только время, мы можем использовать переключатель set-time вместе с форматом времени HH:MM:SS (Часы, Минуты и Секунды).

sudo timedatectl set-time 12:25:30
timedatectl status

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

Failed to set time: Automatic time synchronization is enabled

Ошибка возникает из-за того, что включена автоматическая синхронизация времени (NTP), которая не позволяет вручную изменять время.

Чтобы исправить это, сначала отключите NTP, затем установите время.

sudo timedatectl set-ntp false
sudo timedatectl set-time 12:25:30
timedatectl status

Установить дату и местное время в Linux

7. Чтобы установить и дату, и время, используйте параметр set-time вместе с форматом даты YYYY-MM-DD (Год, Месяц, День) и временем в формате HH:MM:SS (Часы, Минуты и Секунды):

sudo timedatectl set-time '2026-01-23 12:25:30'

Настройка даты и времени в формате ГГ:ММ:ДД и ЧЧ:ММ:СС

Как найти и настроить аппаратные часы в Linux

8. Чтобы установить аппаратные часы в координированное универсальное время, UTC, используйте опцию set-local-rtc boolean-value следующим образом:

Сначала узнайте, установлен ли ваш аппаратный часы на местный часовой пояс:

timedatectl | grep local

Установите аппаратные часы в соответствии с местным часовым поясом:

sudo timedatectl set-local-rtc 1

Установите аппаратные часы на UTC в Linux

Установите аппаратные часы на всемирное координированное время (UTC):

sudo timedatectl set-local-rtc 0

Установите аппаратные часы на UTC

Примечание: Установка RTC на местное время не рекомендуется и может вызвать проблемы с переходом на летнее время, поэтому лучше оставлять RTC в UTC.

Синхронизация системных часов Linux с удалённым NTP-сервером

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

Утилита timedatectl позволяет автоматически синхронизировать системные часы Linux с удалённой группой серверов с помощью NTP.

Большинство современных дистрибутивов Linux используют различные реализации синхронизации NTP:

  • systemd-timesyncd: Лёгкий клиент SNTP (Simple NTP), встроенный в systemd, который подходит для большинства настольных и односерверных конфигураций.
  • chrony: Полнофункциональная реализация NTP, которая может работать как клиент и сервер. Она лучше справляется с прерывистыми сетевыми соединениями и более точна.

Использование systemd-timesyncd

Чтобы начать автоматическую синхронизацию времени с удалённым NTP сервером, введите следующую команду в терминале, которая включит и запустит службу systemd-timesyncd.

sudo timedatectl set-ntp true

Чтобы отключить синхронизацию времени NTP, введите следующую команду на терминале.

sudo timedatectl set-ntp false

Чтобы проверить статус синхронизации:

timedatectl status

Вы должны увидеть «Системные часы синхронизированы: да» и «Служба NTP: активна».

Использование chrony (Рекомендуется для серверов)

Если вы управляете сервером или вам нужна более надежная синхронизация времени, chrony — лучший выбор, особенно он хорош для:

  • Системы, которые не работают непрерывно (ноутбуки, настольные компьютеры).
  • Серверам нужна высокая точность.
  • Системы с прерывистой сетевой связью.
  • Кластерные среды, где критически важна согласованность по времени.

Сначала установите chrony (если он еще не установлен):

sudo apt install chrony   [On Debian-based systems]
sudo dnf install chrony   [On RHEL-based systems]

Примечание: Установка chrony автоматически отключит systemd-timesyncd, чтобы избежать конфликтов.

После установки включите, запустите и проверьте состояние синхронизации:

sudo systemctl enable --now chronyd
timedatectl status

Проверить статус синхронизации системных часов

Чтобы использовать собственные NTP-серверы вместо стандартных, необходимо отредактировать конфигурационный файл Chrony.

sudo nano /etc/chrony/chrony.conf
OR
sudo nano /etc/chrony/sources.d/custom.sources

Добавьте предпочитаемые вами NTP-серверы (вы можете получить список NTP-серверов на проекте NTP Pool).

pool 0.pool.ntp.org iburst
pool 1.pool.ntp.org iburst
pool 2.pool.ntp.org iburst

Перезапустите chrony после внесения изменений:

sudo systemctl restart chronyd

Важные сведения о синхронизации NTP

  • Вы не можете запускать несколько реализаций NTP одновременно, поэтому выберите либо systemd-timesyncd, либо chrony.
  • systemd-timesyncd является только клиентской реализацией и не может предоставлять время другим системам.
  • chrony может выступать как клиентом времени, так и сервером времени для вашей локальной сети.
  • Для производственных серверов и критической инфраструктуры обычно рекомендуется использовать chrony вместо systemd-timesyncd.
  • Для работы NTP требуется, чтобы порт UDP 123 был открыт для исходящих соединений.
Резюме

Это очень простые примеры, приведённые в этом руководстве, и я надеюсь, что они будут полезны для настройки различных системных часов и часовых поясов в Linux.

Чтобы узнать больше об этом инструменте, перейдите на страницу руководства timedatectl.

man timedatectl

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