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

Если вы переехали или путешествуете с ноутбуком на Linux, возможно, нужно обновить системный часовой пояс. Установить часовой пояс из командной строки просто. Ниже — проверенные способы и рекомендации.
Просмотр часовых зон с помощью tzselect
В Linux часовые зоны определяются базой Time Zone Database (tzdata). База поддерживает политические изменения зон и служит единой точкой правды для множества систем.
Команда tzselect запускает меню, которое помогает найти корректное имя зоны (например, America/Los_Angeles для тихоокеанского времени). Запустите в оболочке:
tzselectДалее выберите континент, страну и при необходимости регион. В конце утилита покажет результирующее имя зоны и объяснит, как временно установить его через переменную среды TZ.
Важно: tzselect не вносит системных изменений сама по себе — она только подсказывает правильное имя зоны.
Установка через переменную среды TZ
Переменную среды TZ удобно использовать для быстрого теста или для отдельного процесса. Пример для тихоокеанского времени:
export TZ="America/Los_Angeles"Это изменение действует только в текущей сессии и для процессов, запущенных после экспорта. Чтобы сделать его постоянным для конкретного пользователя, добавьте ту же строку в ~/.bashrc, ~/.profile или ~/.zshrc.
Примечание: системные демоны и процессы, запущенные до изменения переменной, не увидят новый TZ.
Установка через /etc/timezone и /etc/localtime
Для системных, глобальных изменений используют файлы /etc/timezone и /etc/localtime. Поведение зависит от дистрибутива:
- Debian/Ubuntu: при установке используется /etc/timezone и /etc/localtime. Вы можете редактировать /etc/timezone и затем пересоздать /etc/localtime.
- Другие дистрибутивы могут работать с одной только /etc/localtime.
Изменение через /etc/timezone (пример с vim):
sudo vim /etc/timezoneВ файл поместите имя зоны, полученное через tzselect, и сохраните. После этого некоторые системы автоматически обновят /etc/localtime; если нет, создайте символическую ссылку на файл зоны:
sudo ln -sf /usr/share/zoneinfo/America/Los_Angeles /etc/localtimeФайл /etc/localtime обычно — либо копия бинарного файла зоны, либо символическая ссылка на /usr/share/zoneinfo/
Альтернативный способ для systemd: timedatectl
На современных дистрибутивах с systemd удобнее использовать timedatectl:
# список доступных зон
timedatectl list-timezones
# установка зоны
sudo timedatectl set-timezone America/Los_Angeles
# проверка статуса времени и часового пояса
timedatectl statustimedatectl автоматически обновляет системные настройки и /etc/localtime, если это необходимо. Это предпочтительный способ на systemd‑системах.
Когда смена часового пояса не сработает
- В контейнере без соответствующих файлов зоны (нет /usr/share/zoneinfo) или в минимальном окружении. Решение: установить пакеты tzdata или смонтировать зону.
- Приложение жёстко задаёт часовой пояс в конфигурации или использует собственную библиотеку времени. Нужно менять настройки приложения.
- Службы уже работают и кэшируют локальное время; потребуется их перезапустить.
Важно: перезапустите критичные службы (например, базы данных, демоны логирования), чтобы они начали использовать новый часовой пояс.
Быстрая шпаргалка команд
# выбрать имя зоны
tzselect
# временно для сессии
export TZ="Europe/Moscow"
# системно через симлинк
sudo ln -sf /usr/share/zoneinfo/Europe/Moscow /etc/localtime
# на systemd
sudo timedatectl set-timezone Europe/Moscow
# проверить текущее время
date
# статус systemd времени
timedatectl statusЧек-листы по ролям
Для обычного пользователя:
- Запустите tzselect и запомните имя зоны.
- Временно установите TZ в сессии, если нужно срочно.
- Добавьте экспорт в ~/.bashrc, если часто используете.
Для системного администратора:
- Проведите анализ зависимостей приложений и логов.
- Если systemd — используйте timedatectl.
- Создайте симлинк /etc/localtime, если дистрибутив не использует timedatectl.
- Перезагрузите службы, которые кэшируют локальное время.
- Задокументируйте изменение в CMDB или в changelog.
Для разработки и CI:
- В контейнерах включите пакет tzdata или пробросьте /usr/share/zoneinfo.
- Для тестов временно задавайте TZ в окружении сборки.
Мета: критерии приёмки
Чтобы считать изменение успешным:
- Команда date показывает ожидаемое локальное время.
- timedatectl status (если есть) отображает нужную зону.
- Приложения пишут корректные временные метки в логах.
Безопасность и приватность
Часовой пояс не влияет на права доступа, но изменяет временные метки в логах и аудите. При изменении зоны:
- Убедитесь, что журналы синхронизированы с центральным лог‑сервером по UTC или включён явный указатель часовой зоны.
- Проверьте процедуру расследования инцидентов — временные метки могли сместиться.
Короткий глоссарий
- tzdata — база данных часовых зон.
- tzselect — интерактивный помощник для поиска имени зоны.
- TZ — переменная среды для установки часового пояса в сессии.
- /etc/localtime — системный файл (или ссылка) с бинарными данными зоны.
- timedatectl — утилита systemd для управления временем и таймзоной.
Примеры, когда лучше не менять зону локально
- Серверы, собирающие метрики с разных регионов — лучше хранить логи в UTC.
- Критичные сервисы, зависящие от согласованного времени — изменение локальной зоны без синхронизации может запутать мониторинг.
Итог и дальнейшие шаги
Вы можете быстро сменить локальную зону для сессии через TZ, сделать системное изменение через /etc/localtime или воспользоваться timedatectl на systemd. Всегда проверяйте статус времени и при необходимости перезапускайте сервисы. Если нужна конвертация времени в браузере, используйте web‑инструменты вроде MyTimeZone.
Важно: перед массовыми изменениями на серверах подготовьте план отката и уведомите заинтересованные команды.
Краткое резюме:
- tzselect помогает найти корректное имя зоны.
- export TZ действует только в сессии.
- ln -sf /usr/share/zoneinfo/… /etc/localtime меняет системную зону.
- timedatectl — предпочтительный метод для systemd.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента