Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

Linux / DevOps

Смена часового пояса в Linux: настройка timedatectl для новичков

Обновлено: 27.08.2026 · Официальная документация ↗

Почему неправильное системное время опасно?

По умолчанию на всех облачных серверах установлен часовой пояс UTC (время по Гринвичу). Это приводит к путанице:

  • Ошибки в логах Nginx и баз данных пишутся с разницей в несколько часов.
  • Задачи планировщика Cron (например, ночные бэкапы) запускаются в разгар рабочего дня.
  • Сбоят системы двухфакторной аутентификации (2FA/TOTP).

Пошаговая установка часового пояса

  1. Проверяем текущее системное время и статус синхронизации NTP:
    timedatectl
  2. Ищем точное название нужного часового пояса:
    timedatectl list-timezones | grep -i moscow
  3. Устанавливаем правильную таймзону (например, Москва):
    sudo timedatectl set-timezone Europe/Moscow
  4. Включаем автоматическую сетевую синхронизацию времени (NTP):
    sudo timedatectl set-ntp on
  5. Проверяем результат:
    timedatectl

После смены системного часового пояса рекомендуется перезапустить службу логирования: sudo systemctl restart systemd-journald.

💡 Практика специалистов: На микросервисных архитектурах лучшей практикой считается оставлять серверы в UTC, а конвертацию времени в локальный пояс производить на уровне фронтенда.

Частые вопросы (FAQ)

Изменится ли время внутри Docker-контейнеров после этой команды?

Контейнеры читают /etc/timezone хоста только при монтировании томов. Пробросьте том: -v /etc/localtime:/etc/localtime:ro.

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

Выполните команду: date.

Почему команда timedatectl выдает System has not been booted with systemd?

Вы находитесь внутри контейнера WSL или Docker. В таком случае используйте: ln -sf /usr/share/zoneinfo/Europe/Moscow /etc/localtime.

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

Перезапустите службу времени: sudo systemctl restart systemd-timesyncd.

Полезные материалы
Рекомендуем