Смена часового пояса в Linux: настройка timedatectl для новичков
Почему неправильное системное время опасно?
По умолчанию на всех облачных серверах установлен часовой пояс UTC (время по Гринвичу). Это приводит к путанице:
- Ошибки в логах Nginx и баз данных пишутся с разницей в несколько часов.
- Задачи планировщика Cron (например, ночные бэкапы) запускаются в разгар рабочего дня.
- Сбоят системы двухфакторной аутентификации (2FA/TOTP).
Пошаговая установка часового пояса
- Проверяем текущее системное время и статус синхронизации NTP:
timedatectl - Ищем точное название нужного часового пояса:
timedatectl list-timezones | grep -i moscow - Устанавливаем правильную таймзону (например, Москва):
sudo timedatectl set-timezone Europe/Moscow - Включаем автоматическую сетевую синхронизацию времени (NTP):
sudo timedatectl set-ntp on - Проверяем результат:
timedatectl
После смены системного часового пояса рекомендуется перезапустить службу логирования: sudo systemctl restart systemd-journald.
Частые вопросы (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.