Как изменить часовой пояс на сервере Ubuntu
Если на сервере стоит пояс UTC, он показывает время на три часа раньше московского. Тогда задания cron срабатывают не в тот час, а время в журналах не совпадает с вашим. Ниже — как поставить нужный пояс и проверить, что часы идут точно.
Содержание 9
Что сделать прямо сейчас
- Подключитесь к серверу — инструкция.
- Посмотрите текущий пояс:
timedatectl. Нужна строкаTime zone. - Поставьте московское время:
sudo timedatectl set-timezone Europe/Moscow. - Проверьте: снова
timedatectl. В строкеTime zoneпоявитсяEurope/Moscow (MSK, +0300). - Перезапустите cron, чтобы задания шли по новому времени:
sudo systemctl restart cron.
Сервер перезагружать не нужно. Пояс меняет только то, как время показывается: сами часы сервера идут по UTC и не сдвигаются.
Что показывает timedatectl
Команда timedatectl без слов после неё — то же, что timedatectl status. Строки ответа:
| Строка | Что значит |
|---|---|
Local time | время по поясу сервера |
Universal time | время по UTC |
RTC time | время аппаратных часов; на виртуальном сервере может быть n/a |
Time zone | пояс, его сокращение и сдвиг от UTC |
System clock synchronized | yes — часы сверены по сети |
NTP service | active — служба сверки времени работает |
RTC in local TZ | no — аппаратные часы идут по UTC, так и должно быть |
Как найти свой пояс
Пояса называют по региону и городу: Europe/Moscow, Asia/Yekaterinburg, Asia/Novosibirsk. Весь список длинный, поэтому ищите по части названия:
timedatectl list-timezones | grep Europe
timedatectl list-timezones | grep -i yekatgrep -i ищет без учёта больших и маленьких букв. Название пояса пишите в set-timezone точно как в списке: с большой буквы и через косую черту.
| Город | Пояс | Сдвиг от UTC |
|---|---|---|
| Москва, Санкт-Петербург | Europe/Moscow | +3 |
| Калининград | Europe/Kaliningrad | +2 |
| Самара | Europe/Samara | +4 |
| Екатеринбург | Asia/Yekaterinburg | +5 |
| Новосибирск | Asia/Novosibirsk | +7 |
| Владивосток | Asia/Vladivostok | +10 |
| Время по UTC | Etc/UTC | 0 |
Как вернуть UTC
sudo timedatectl set-timezone Etc/UTCUTC удобен, если сервером пользуются люди из разных поясов: время в журналах не прыгает и не путается. Тогда в расписании cron пишите часы по UTC: 3:00 ночи по Москве — это 0 0 *.
Что поменяется после смены пояса
| Что | Что будет |
|---|---|
date, ls -l, вывод программ | время по новому поясу |
| cron | после перезапуска — расписание по новому поясу; подробнее — расписание cron |
журналы journalctl | время записей показывается по новому поясу |
| журналы nginx | новые строки — по новому поясу после sudo systemctl reload nginx |
| PHP и базы данных | у них может быть своя настройка пояса, она не меняется |
Время по UTC в любой момент покажет date -u. Время в другом поясе, не меняя настройку сервера: TZ=Asia/Novosibirsk date.
Синхронизация времени
Чтобы часы сервера не уходили вперёд или назад, их сверяют с серверами точного времени по протоколу NTP. В Ubuntu этим занимается служба systemd-timesyncd.
| Команда | Что делает |
|---|---|
timedatectl | строки System clock synchronized и NTP service |
sudo timedatectl set-ntp true | включить синхронизацию |
timedatectl timesync-status | с каким сервером времени сверяются часы |
Если часы сервера ушли далеко, apt откажется обновлять пакеты — разбор в статье Release file is not valid yet.
Ошибки и как их исправить
| Ответ | Что значит | Что сделать |
|---|---|---|
Failed to set time zone: Invalid or not installed time zone '…' | такого пояса нет: опечатка или маленькая буква | найдите точное название в timedatectl list-timezones |
без sudo — запрос пароля или Failed to set time zone: … | смена пояса меняет систему | запустите с sudo |
Failed to set ntp: NTP not supported | на сервере нет службы синхронизации | поставьте её: sudo apt install systemd-timesyncd |
Failed to set time: Automatic time synchronization is enabled | вручную время не ставится, пока включена синхронизация | оставьте синхронизацию: она ставит точное время сама |
Источники
- Справка timedatectl для Ubuntu 24.04 — команды status, list-timezones, set-timezone, set-ntp и timesync-status.
- Справка systemd-timesyncd.service для Ubuntu 24.04 — синхронизация часов по сети через NTP.
- Справка localtime для Ubuntu 24.04 — файл /etc/localtime — ссылка на файл пояса в /usr/share/zoneinfo.
- Справка date для Ubuntu 24.04 — ключ -u и переменная TZ.
- Справка cron(8) из пакета cron для Ubuntu 24.04 — часовой пояс cron берёт из /etc/localtime.
- Исходный код systemd 255: timedatectl.c — строки вывода status и тексты Failed to set time zone и Failed to set ntp.
- Исходный код systemd 255: timedated.c — тексты Invalid or not installed time zone, NTP not supported и Automatic time synchronization is enabled.
Сверено 11 октября 2026 года.
Что почитать дальше
- Расписание cronкак задать время запуска задания.
- Cron не запускает скриптесли задание не сработало в нужный час.
- Как настроить VPS с нулячто ещё сделать на новом сервере.
- Команды Linux для новичкашпаргалка по командам.
Проверено и обновлено: 11.10.2026