С чего начать Первые шаги трек · 15 ступеней
Linux Labs

timedatectl — время, часовой пояс и синхронизация

4 мин Ubuntu 24.04 · systemd

Управляет системным временем и NTP; set-time требует сначала выключить set-ntp, иначе время вернётся обратно.

Шпаргалка

6 команд Версия для печати
  • timedatectl время, пояс, синхронизация
  • sudo timedatectl set-timezone Europe/Moscow сменить часовой пояс
  • sudo timedatectl set-ntp true включить синхронизацию по NTP
  • timedatectl timesync-status сервер, задержка, расхождение
  • chronyc tracking то же у chrony
  • date -u текущее время в UTC

Обзор

Точное время важно: TLS-сертификаты, логи, cron, кластеры, Kerberos ломаются при расхождении. В Ubuntu временем заведует systemd (systemd-timesyncd — лёгкий NTP-клиент; точнее держит часы и раздаёт время другим машинам chrony).

bash
timedatectl                       # время, пояс, синхронизация
timedatectl list-timezones        # список зон
timedatectl list-timezones | grep -i moscow

Ключи

6

set-time требует, чтобы автосинхронизация была выключена: с активным set-ntp true служба тут же вернёт время обратно, и ручная правка будет выглядеть так, будто не сработала. set-local-rtc переключает формат аппаратных часов между UTC (правильно для Linux-сервера) и локальным временем (нужно только для двойной загрузки с Windows).

Ключ Что делает Пример
set-timezone ZONE Сменить часовой пояс — переключает симлинк /etc/localtime. sudo timedatectl set-timezone Europe/Moscow
set-ntp true|false Включить или выключить автоматическую синхронизацию времени по NTP. sudo timedatectl set-ntp true
set-time 'YYYY-MM-DD HH:MM:SS' Задать время вручную; работает только при выключенном set-ntp. sudo timedatectl set-time '2026-01-01 12:00:00'
timesync-status Показать сервер синхронизации, задержку и расхождение времени. timedatectl timesync-status
list-timezones Показать список доступных часовых поясов. timedatectl list-timezones
set-local-rtc 0|1 Хранить аппаратные часы в UTC (0, рекомендуется) или в локальном времени (1). sudo timedatectl set-local-rtc 0

Ничего не найдено. Попробуй запрос короче.

Рецепты

3

Команды

bash
sudo timedatectl set-timezone Europe/Moscow  # пояс: /etc/localtime
sudo timedatectl set-ntp true          # включить синхронизацию по NTP
timedatectl timesync-status            # сервер, offset (timesyncd)
timedatectl show-timesync --all        # все детали timesyncd
sudo timedatectl set-ntp false         # перед set-time
sudo timedatectl set-time '2026-01-01 12:00:00'
sudo timedatectl set-local-rtc 0       # RTC в UTC (1 — для Windows)
date ; date -u                         # локальное / UTC
date +%s                               # unix-время (epoch)
hwclock --show                         # аппаратные часы (RTC)

Часовой пояс

text
student@node1:~$ sudo timedatectl set-timezone Europe/Moscow
student@node1:~$ timedatectl | head -4
               Local time: Wed 2026-10-21 14:56:56 MSK
           Universal time: Wed 2026-10-21 11:56:56 UTC
                 RTC time: Wed 2026-10-21 11:56:56
                Time zone: Europe/Moscow (MSK, +0300)

Пояс меняет только показ времени: системные часы идут в UTC, а /etc/localtime становится ссылкой на /usr/share/zoneinfo/Europe/Moscow. Файл /etc/timezone при этом остаётся старым (Etc/UTC) — пояс смотри в timedatectl.

chrony вместо timesyncd

Установка chrony удаляет systemd-timesyncd. После неё set-ntp останавливает и запускает chrony, а timesync-status отвечает Failed to query server — состояние показывает chronyc tracking.

Неполадки

5

Время «уехало», логи/сертификаты странные

timedatectl → System clock synchronized: no. Включи NTP: sudo timedatectl set-ntp true; проверь systemctl status systemd-timesyncd и доступность NTP (chronyc sources или порт 123/udp наружу — см. firewall).

Failed to set time: Automatic time synchronization is enabled

Сначала выключи автосинхронизацию: sudo timedatectl set-ntp false, потом ставь время. После опыта верни её: sudo timedatectl set-ntp true.

Разное время в логах и date

Логи часто в UTC, а date — в локальной зоне. Сверяйся с timedatectl (показывает обе) или date -u. Журнал в локальной зоне: journalctl уже учитывает TZ.

Часы «прыгают» после ребута

RTC в неверном режиме (set-local-rtc). На Linux-сервере держи RTC в UTC (set-local-rtc 0).

В контейнере неверная зона

Таймзона хоста ≠ контейнера; задаётся переменной TZ или монтированием /etc/localtime.

Термины

2
UTC
Всемирное координированное время — без часовых поясов и переводов часов. Ядро считает время в UTC (секунды с 1970 года), пояс влияет только на показ. Ещё встречается в: Cron, journalctl, chrony: синхронизация времени по NTP, date и ещё 1
часовой пояс time zone
Правило показа времени: смещение от UTC и переводы часов. Пояс машины — ссылка /etc/localtime на файл из /usr/share/zoneinfo, меняется timedatectl set-timezone. Ещё встречается в: Cron, chrony: синхронизация времени по NTP, rsync, Таймеры systemd

См. также

  • chrony — NTP-клиент и сервер: tracking, sources, шаг часов.
  • date — показать и задать время, unix-время.
  • systemd — Init-система и менеджер служб (PID 1): юниты, цели, зависимости, журналы.
  • journalctl — Чтение журнала systemd (journald) — фильтры по службе, времени, приоритету.
Загрузка…