Настройка времени и даты в Linux с timedatectl
Коротко: используйте timedatectl для просмотра, установки и синхронизации времени и часового пояса в Linux. Отключите NTP только если нужно вручную выставить время; в большинстве случаев стоит использовать сетевую синхронизацию.

Поддержание корректного времени и даты — важная часть стабильной и безопасной системы Linux. Точное время нужно не только для отображения часов, но и для корректной работы планировщиков задач, сертификатов TLS, журналов и сетевой аутентификации.
Ниже описано, как просмотреть текущие значения, вручную изменить время и дату, настроить часовой пояс и включить или отключить сетевую синхронизацию с помощью команды timedatectl.
Краткие определения
- RTC (аппаратные часы): аппаратный реальное-время-часовой модуль, который работает независимо от ОС.
- Системные часы (software clock): часы, поддерживаемые ядром Linux, которые используются приложением после загрузки.
Как управляется время в Linux
Linux использует два типа часов:
- Аппаратные часы (RTC) — сохраняют время даже при выключенном питании. Они обычно находятся на материнской плате.
- Системные часы — поддерживаются ядром и используются операционной системой и процессами. При загрузке система инициализирует системные часы значением из RTC.
По умолчанию время в системе хранится в формате UTC (Coordinated Universal Time). Потом ОС конвертирует UTC в локальное время на основе выбранного часового пояса. На рабочем столе обычно отображается локальное время.
Просмотр текущего времени и параметров
Чтобы увидеть текущие значения, выполните команду timedatectl без параметров:
timedatectlКоманда возвращает локальное время, UTC, аппаратные часы (RTC), часовой пояс и состояние синхронизации NTP. Альтернативно можно просмотреть время через команду date.
Важно: для изменения времени требуются привилегии root (sudo).
Установка или изменение времени вручную
Чтобы задать время вручную, используйте subcommand set-time:
sudo timedatectl set-time HH:MM:SSГде HH — часы (24‑часовой формат), MM — минуты, SS — секунды.
Пример: установить время на 00:00:00 (полночь):
sudo timedatectl set-time 00:00:00Команда обновляет как системные часы, так и RTC. Если включён NTP, ручная установка времени будет заблокирована.
Важное замечание
- Если Network Time Protocol (NTP) включён, timedatectl не даст вручную изменить время. Отключите NTP перед установкой вручную.
- Установка времени вручную может привести к рассинхронизации журналов и сертификатов. Действуйте осторожно на продуктивных серверах.
Включение и отключение NTP
NTP позволяет автоматически синхронизировать время с удалёнными серверами.
Отключить NTP:
sudo timedatectl set-ntp falseВключить NTP:
sudo timedatectl set-ntp trueПосле включения система будет автоматически корректировать время при получении данных от NTP-сервера.
Примечание: set-ntp не сработает на системах без поддержки этой функции.
Установка даты
Для изменения только даты используйте ту же подкоманду set-time в формате YYYY-MM-DD или укажите дату и время вместе:
sudo timedatectl set-time YYYY-MM-DDЕсли вы укажете только дату, timedatectl по умолчанию установит время на 00:00:00. Чтобы одновременно задать дату и время:
sudo timedatectl set-time "2000-01-01 23:00:01"Смена часового пояса
Список доступных часовых поясов можно получить командой:
timedatectl list-timezonesВ просмотрщике используйте клавишу F для прокрутки вперёд и B для назад, или стрелки. После того как вы выбрали нужный часовой пояс, примените его так:
sudo timedatectl set-timezone Region/CityПример:
sudo timedatectl set-timezone Africa/BlantyreПолучение помощи и документации
Для быстрой справки по timedatectl:
timedatectl helpДля полной документации используйте man:
man timedatectlАльтернативные инструменты
- hwclock — утилита для работы непосредственно с аппаратными часами (RTC).
- date — простая утилита для вывода и установки системного времени (обычно используется в скриптах).
timedatectl является современной обёрткой, входящей в состав systemd. Она удобна и безопасна для большинства сценариев.
Быстрая методика (mini‑methodology): пошагово
- Проверьте текущее состояние: timedatectl
- Если нужно синхронизировать — включите NTP: sudo timedatectl set-ntp true
- Если требуется ручная корректировка — отключите NTP: sudo timedatectl set-ntp false
- Установите дату/время: sudo timedatectl set-time “YYYY-MM-DD HH:MM:SS”
- При необходимости смените часовой пояс: sudo timedatectl set-timezone Region/City
- Проверьте результат: timedatectl
Рекомендации по ролям (чек-листы)
Для системного администратора:
- Проверить текущую синхронизацию (timedatectl)
- Убедиться, что NTP работает на серверах (set-ntp true)
- Настроить системный мониторинг времени и оповещения при сдвиге
Для пользователя рабочего стола:
- Проверить часовой пояс и локальное время
- Включить автоматическую синхронизацию времени
- Перезагрузить приложения, если они зависят от времени
Тесты и критерии приёмки
Критерии приёмки для настройки времени:
- Системное время совпадает с UTC и локальное время отображается правильно
- NTP показывает состояние synchronized после включения
- RTC отражает ожидаемое локальное/UTC значение после перезагрузки
- Журналы не содержат сообщений о рассинхронизации времени
Тестовые сценарии:
- Включить NTP и проверить, что timedatectl показывает NTP synchronized: yes
- Отключить NTP, вручную изменить время и убедиться в изменениях в timedatectl и date
- Сменить часовой пояс и проверить корректность локального времени
Отказные случаи и отладка
Когда ручная установка не срабатывает:
- Возможная причина — включён NTP. Отключите его и попробуйте снова.
- Проблемы с привилегиями: используйте sudo или root.
- Аппаратные сбои RTC: проверьте hwclock и логи ядра.
Если время возвращается к старому после перезагрузки, проверьте, какой источник времени применяется при старте (init/Systemd конфигурации) и работу службы NTP или systemd-timesyncd.
Безопасность и конфиденциальность
- Неправильное время влияет на проверку сертификатов TLS и логи — это может привести к отказу сервисов.
- Сетевые службы синхронизации используют NTP. Выберите доверенные NTP-серверы или корпоративный сервер для повышенной безопасности.
- Изменение времени вручную на продуктивных системах должно быть документировано и одобрено.
Краткий глоссарий (1 строка каждый)
- NTP: протокол для синхронизации времени по сети.
- RTC: аппаратные часы на материнской плате.
- UTC: всемирное координированное время.
- timedatectl: утилита systemd для управления временем и часовым поясом.
Короткое сравнение команд (cheat sheet)
- Просмотр: timedatectl
- Установка времени: sudo timedatectl set-time “YYYY-MM-DD HH:MM:SS”
- Установка только времени: sudo timedatectl set-time HH:MM:SS
- Установка даты: sudo timedatectl set-time YYYY-MM-DD
- Включить/отключить NTP: sudo timedatectl set-ntp true|false
- Список таймзон: timedatectl list-timezones
- Установка таймзоны: sudo timedatectl set-timezone Region/City
- Работа с аппаратными часами: sudo hwclock –systohc (записать systime в RTC) или sudo hwclock –hctosys (загрузить RTC в systime)
Резюме
timedatectl — современная и безопасная утилита для управления временем и часовым поясом в Linux. В большинстве случаев стоит полагаться на сетевую синхронизацию (NTP). Используйте ручную установку только при необходимости и помните про влияние на сертификаты, логи и запланированные задачи.
Кратко: проверьте timedatectl, включите NTP для автоматической синхронизации, меняйте часовой пояс через set-timezone, и используйте hwclock при необходимости напрямую работать с аппаратными часами.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента