Skip to content
VDS · Операційні системи

Часовий пояс, локаль і мова системи

Як задати часовий пояс, увімкнути синхронізацію часу, налаштувати локаль UTF-8 і чому логи та базу даних варто тримати в UTC.

Оновлено 23 серпня 2026 р.

Свіжий сервер зазвичай працює в UTC з мінімальним набором локалей. Поки ви не читаєте логи й не запускаєте завдання за розкладом, цього не помітно. Щойно з'являються cron, листи та звіти, час і кодування починають відігравати велику роль.

Часовий пояс

timedatectl
timedatectl list-timezones | grep Moscow
timedatectl set-timezone Europe/Moscow

timedatectl показує місцевий час, UTC і стан синхронізації. Рядок System clock synchronized: yes означає, що годинник синхронізується через мережу.

Якщо синхронізацію вимкнено:

timedatectl set-ntp true
systemctl status systemd-timesyncd

На AlmaLinux і CentOS Stream за час зазвичай відповідає chronyd:

systemctl enable --now chronyd
chronyc tracking

Локаль

Локаль визначає мову повідомлень, кодування та формат чисел і дат. Необхідний мінімум — UTF-8; інакше російські назви файлів і вивід програм перетворюються на знаки питання.

Debian і Ubuntu:

apt install -y locales
dpkg-reconfigure locales
localectl set-locale LANG=ru_RU.UTF-8

AlmaLinux і CentOS Stream:

dnf install -y glibc-langpack-ru
localectl set-locale LANG=ru_RU.UTF-8

Перевірка:

locale
locale -a | grep -i utf

Зміни застосовуються до нових сесій — увійдіть знову через SSH.

Розкладка клавіатури в консолі

Вигляд «Екран» (VNC) на вкладці «Консоль» панелі /hosting/vds/m/<id> передає натискання клавіш як є. Якщо потрібно набирати кирилицею прямо там:

localectl set-keymap ru

Сервісам це не потрібно — їм достатньо UTF-8.

Що залишити в UTC

Розумно тримати саму систему й базу даних в UTC, а місцевий час показувати лише людям.

  • Логи в UTC порівнюються між машинами й не стрибають під час переходу на літній час.
  • База даних в UTC не ламає обчислення інтервалів.
  • Cron рахує час за часовим поясом системи: якщо ви змінюєте часовий пояс, перечитайте розклади.
systemctl restart cron
crontab -l

Типові помилки

СимптомПричинаРішення
setlocale: LC_ALL: cannot change localeКлієнт надсилає власну локаль, але її немає на серверіЗгенеруйте локаль або вимкніть передавання LANG на клієнті
Кракозябри в назвах файлівЛокаль не UTF-8LANG=ru_RU.UTF-8 і увійдіть знову
Час «поплив» на хвилиниСинхронізацію вимкненоtimedatectl set-ntp true
Завдання виконалося не в ту годинуВи змінили часовий пояс, а розклад залишився тим самимПерерахуйте crontab

Змініть часовий пояс до того, як налаштуєте завдання резервного копіювання та логування. На робочій машині зміна часового поясу означає перегляд усіх розкладів одразу.