Gymterview
junior

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

Корректное время на сервере критически важно для логирования, TLS/SSL-сертификатов, распределённых систем, cron и токенов аутентификации.

timedatectl — управление временем

Пример
timedatectl                                      # Текущие настройки
timedatectl list-timezones | grep Moscow          # Доступные часовые пояса
sudo timedatectl set-timezone Europe/Moscow       # Установить часовой пояс
sudo timedatectl set-timezone UTC                 # Многие серверы используют UTC

NTP-синхронизация

В Ubuntu 24.04 синхронизация выполняется через systemd-timesyncd (по умолчанию) или chrony (для серверов с повышенными требованиями).

Пример
# systemd-timesyncd
sudo timedatectl set-ntp true        # Включить NTP
timedatectl timesync-status          # Статус синхронизации

# chrony (для серверов)
sudo apt install chrony
chronyc tracking                     # Статус синхронизации
chronyc sources                      # Источники времени

Для Java-разработчика

  • JVM использует системный часовой пояс по умолчанию. Переопределить: -Duser.timezone=UTC
  • В Spring Boot: spring.jackson.time-zone=UTC
  • На серверах часто используют UTC для единообразия логов

На собеседовании: ожидают знание timedatectl и понимание, зачем серверы работают в UTC. Частая ошибка — забыть, что JVM берёт часовой пояс из системы и его можно переопределить через JVM-параметр. В распределённых системах рассинхронизация времени приводит к сложнодиагностируемым ошибкам.