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-параметр. В распределённых системах рассинхронизация времени приводит к сложнодиагностируемым ошибкам.