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

Как управляется время в Linux
Linux использует два типа часов:
- Аппаратные часы (RTC, hardware clock) — встроенные в плату часы, которые продолжают работать когда ОС выключена или перезагружается.
- Системные часы (software clock) — поддерживаются ядром и используются приложениями. При загрузке система получает начальное время из RTC.
По умолчанию системное время хранится в формате UTC. ОС конвертирует UTC в локальное время по часовому поясу для отображения пользователю.
Важно: для корректной работы распределённых систем и сертификатов рекомендуют хранить системное время в UTC и показывать локальное время только в интерфейсах.
Просмотр текущего времени и настроек
Чтобы увидеть текущие значения времени, зоны и состояния синхронизации, выполните:
timedatectl
Команда показывает локальное время, UTC, аппаратные часы, текущий часовой пояс и включён ли NTP.
Альтернатива: для простого отображения времени можно использовать:
dateКак изменить время вручную
Чтобы задать время, используйте timedatectl с подкомандой set-time. Требуются права суперпользователя:
sudo timedatectl set-time hh:mm:ssФормат времени — 24-часовой. Пример установки полуночи:
sudo timedatectl set-time 00:00:00Примечание: команда обновляет и системные, и аппаратные часы. Если NTP включён, ручная установка времени не сработает до отключения синхронизации.
Включение и отключение NTP
Network Time Protocol (NTP) автоматически синхронизирует время с внешним сервером. Управление:
sudo timedatectl set-ntp falsesudo timedatectl set-ntp trueВажно: некоторые системы используют systemd-timesyncd или другие демоны синхронизации. set-ntp переключает общее состояние синхронизации, но конкретный демон должен быть установлен и поддерживаться системой.
Как установить дату
Формат для установки даты — YYYY-MM-DD. Можно указывать также и время в одной строке:
sudo timedatectl set-time YYYY-MM-DDПример изменения даты (и времени):
sudo timedatectl set-time "2000-01-01 23:00:01"Если указать только дату, timedatectl установит время на 00:00 по умолчанию.
Смена часового пояса
Для начала просмотрите доступные часовые пояса:
timedatectl list-timezones
Используйте клавиши F/B или стрелки для прокрутки в терминале. После выбора примените нужный пояс, например:
timedatectl set-timezone Africa/BlantyreПосле смены часового пояса локальное отображаемое время изменится, а внутреннее значение в UTC останется корректным.
Справка и документация
Чтобы получить краткую помощь по timedatectl:
timedatectl helpДля подробного описания используйте man:
man timedatectlАльтернативные утилиты
timedatectl — современный инструмент, входящий в состав systemd. Дополнительно вы можете встретить:
- hwclock — работа с аппаратными часами напрямую;
- date — отображение и простая установка времени;
- chronyd или ntpd — альтернативные демоны NTP для тонкой настройки синхронизации.
Выбор зависит от типа системы: на серверах часто используют chrony или ntpd для устойчивой синхронизации, на рабочих станциях достаточно systemd-timesyncd.
Практическое руководство: безопасная последовательность действий
- Проверьте текущее состояние:
timedatectl- Если NTP включён и вам нужно ручное изменение, временно отключите его:
sudo timedatectl set-ntp false- Установите дату и/или время:
sudo timedatectl set-time "YYYY-MM-DD hh:mm:ss"- Проверьте аппаратные часы (опционально):
sudo hwclock --show- Включите NTP снова при необходимости:
sudo timedatectl set-ntp true- Подтвердите финальные значения:
timedatectlКритерии приёмки:
- Локальное время отличается от заданного не более чем на допустимую погрешность (обычно <1 сек при NTP).
- Часовой пояс соответствует требуемому региону.
- NTP включён, если требуется автоматическая синхронизация.
Быстрый шпаргалка — команды
# Показать состояние
timedatectl
# Установить время
sudo timedatectl set-time 14:30:00
# Установить дату (и время)
sudo timedatectl set-time "2025-05-01 08:00:00"
# Включить/отключить NTP
sudo timedatectl set-ntp true
sudo timedatectl set-ntp false
# Список часовых поясов
timedatectl list-timezones
# Установить часовой пояс
sudo timedatectl set-timezone Europe/MoscowРоли и чек-лист при изменении времени
Администратор:
- Выполнить резервную проверку логов и меток времени.
- Отключить NTP при необходимости.
- Прописать изменения в Change-лог.
Оператор/пользователь:
- Проверить, доступна ли команда timedatectl.
- Сообщить администратору о несоответствии времени.
DevOps-инженер:
- Убедиться, что кластеры и CI/CD не пострадают от смены времени.
- Обновить конфигурации мониторинга и SLO при необходимости.
Когда ручная настройка не сработает
- NTP включён — timedatectl не разрешит ручную установку.
- Система использует специализированный агент времени в облаке (например, облачные провайдеры могут принудительно синхронизировать часы).
- Отсутствуют права суперпользователя.
Если изменение откатывается автоматически, проверьте запущенные демоны синхронизации и политики управления конфигурацией (Ansible, Salt, Puppet).
Безопасность и конфиденциальность
- Неправильное время может нарушить проверку сертификатов TLS, логи и аутентификацию.
- Не отключайте NTP на производственных серверах без плана отката и уведомления команды.
Мини-методология проверки после изменения
- Выполнить timedatectl и убедиться в ожидаемых значениях.
- Проверить синхронизацию с внешним сервером (если применимо).
- Просмотреть системные логи за последние минуты для поиска ошибок, связанных со временем.
- Тестировать критичные приложения (аутентификация, SSL, планировщики задач).
Короткий глоссарий
- UTC — Всемирное координированное время.
- RTC — Аппаратные часы.
- NTP — Протокол сетевого времени.
Частые вопросы
Как временно установить время без изменения аппаратных часов?
Используйте только изменение системного времени через timedatectl; однако timedatectl обычно обновляет и аппаратные часы. Для более тонкого управления применяйте hwclock с опциями восстановления.
Могу ли я указать NTP-сервер в timedatectl?
timedatectl не настраивает список серверов напрямую; для этого редактируют конфигурацию демона синхронизации (systemd-timesyncd, chrony или ntpd).
Что делать, если после смены часового пояса логи стали некорректными?
Откатите изменения, синхронизируйте часы с NTP и пересмотрите политику ротации логов. В серьёзных случаях восстановите логи из бэкапов.
Краткое резюме
- timedatectl — основной инструмент для просмотра и настройки времени в systemd-системах.
- Всегда проверяйте состояние NTP перед ручной правкой.
- Используйте чек-листы и уведомляйте команду при изменениях на продакшн-серверах.
Важно: любые изменения времени на серверах требуют координации с командами, чтобы избежать проблем с логами, мониторингом и аутентификацией.
Похожие материалы
Подготовка к техническому собеседованию разработчика
Запуск мастера устранения неполадок в Windows
Как создать мем: полное руководство
Как устранить BSOD 0x0000003B в Windows
Clone Stamp в Photoshop — подробное руководство