Справочник

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

Если на сервере стоит пояс UTC, он показывает время на три часа раньше московского. Тогда задания cron срабатывают не в тот час, а время в журналах не совпадает с вашим. Ниже — как поставить нужный пояс и проверить, что часы идут точно.

Обновлено 11.10.2026≈ 5 мин чтения
Содержание 9

Что сделать прямо сейчас

  1. Подключитесь к серверу — инструкция.
  2. Посмотрите текущий пояс: timedatectl. Нужна строка Time zone.
  3. Поставьте московское время: sudo timedatectl set-timezone Europe/Moscow.
  4. Проверьте: снова timedatectl. В строке Time zone появится Europe/Moscow (MSK, +0300).
  5. Перезапустите cron, чтобы задания шли по новому времени: sudo systemctl restart cron.

Сервер перезагружать не нужно. Пояс меняет только то, как время показывается: сами часы сервера идут по UTC и не сдвигаются.

Что показывает timedatectl

Команда timedatectl без слов после неё — то же, что timedatectl status. Строки ответа:

СтрокаЧто значит
Local timeвремя по поясу сервера
Universal timeвремя по UTC
RTC timeвремя аппаратных часов; на виртуальном сервере может быть n/a
Time zoneпояс, его сокращение и сдвиг от UTC
System clock synchronizedyes — часы сверены по сети
NTP serviceactive — служба сверки времени работает
RTC in local TZno — аппаратные часы идут по UTC, так и должно быть

Как найти свой пояс

Пояса называют по региону и городу: Europe/Moscow, Asia/Yekaterinburg, Asia/Novosibirsk. Весь список длинный, поэтому ищите по части названия:

timedatectl list-timezones | grep Europe
timedatectl list-timezones | grep -i yekat

grep -i ищет без учёта больших и маленьких букв. Название пояса пишите в set-timezone точно как в списке: с большой буквы и через косую черту.

ГородПоясСдвиг от UTC
Москва, Санкт-ПетербургEurope/Moscow+3
КалининградEurope/Kaliningrad+2
СамараEurope/Samara+4
ЕкатеринбургAsia/Yekaterinburg+5
НовосибирскAsia/Novosibirsk+7
ВладивостокAsia/Vladivostok+10
Время по UTCEtc/UTC0

Как вернуть UTC

sudo timedatectl set-timezone Etc/UTC

UTC удобен, если сервером пользуются люди из разных поясов: время в журналах не прыгает и не путается. Тогда в расписании 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вручную время не ставится, пока включена синхронизацияоставьте синхронизацию: она ставит точное время сама

Источники

Сверено 11 октября 2026 года.

Что почитать дальше

Проверено и обновлено: 11.10.2026