Časové pásmo, locale a jazyk systému
Ako nastaviť časové pásmo, zapnúť synchronizáciu času, nakonfigurovať UTF-8 locale a prečo by logy a databáza mali byť v UTC.
Aktualizované 23. augusta 2026
Čerstvý stroj zvyčajne beží v UTC s minimálnou sadou locale. Kým nečítaš logy alebo nespúšťaš naplánované úlohy, nič si nevšimneš. Len čo však prídu na rad cron, e-maily a reporty, čas a kódovanie začnú hrať veľkú rolu.
Časové pásmo
timedatectl
timedatectl list-timezones | grep Moscow
timedatectl set-timezone Europe/Moscow
timedatectl zobrazuje miestny čas, UTC a stav synchronizácie. Riadok System clock synchronized: yes znamená, že hodiny sú synchronizované cez sieť.
Ak je synchronizácia vypnutá:
timedatectl set-ntp true
systemctl status systemd-timesyncd
Na AlmaLinux a CentOS Stream je za čas zvyčajne zodpovedný chronyd:
systemctl enable --now chronyd
chronyc tracking
Locale
Locale určuje jazyk správ, kódovanie a formát čísel a dátumov. Požadované minimum je UTF-8; inak sa ruské názvy súborov a výstup programov zmenia na otázniky.
Debian a Ubuntu:
apt install -y locales
dpkg-reconfigure locales
localectl set-locale LANG=ru_RU.UTF-8
AlmaLinux a CentOS Stream:
dnf install -y glibc-langpack-ru
localectl set-locale LANG=ru_RU.UTF-8
Overenie:
locale
locale -a | grep -i utf
Zmeny sa prejavia v nových reláciách—prihlás sa znova cez SSH.
Rozloženie klávesnice v konzole
Zobrazenie „Screen“ (VNC) na karte „Console“ v paneli /hosting/vds/m/<id> prenáša stlačenia klávesov tak, ako sú. Ak potrebuješ písať priamo tam cyriliku:
localectl set-keymap ru
Služby to nepotrebujú—UTF-8 im stačí.
Čo nechať v UTC
Je rozumné nechať samotný systém a databázu v UTC a miestny čas zobrazovať len ľuďom.
- Logy v UTC sú porovnateľné medzi strojmi a neposúvajú sa pri zmene času.
- Databáza v UTC nerozbíja výpočty intervalov.
- Cron počíta čas podľa systémového časového pásma: ak zmeníš časové pásmo, znova si prečítaj plány.
systemctl restart cron
crontab -l
Časté chyby
| Príznak | Príčina | Riešenie |
|---|---|---|
setlocale: LC_ALL: cannot change locale | Klient posiela svoje vlastné locale, ale to na serveri neexistuje | Vygeneruj locale alebo na klientovi odstráň preposielanie LANG |
| Rozsypané znaky v názvoch súborov | Locale nie je UTF-8 | LANG=ru_RU.UTF-8 a prihlás sa znova |
| Čas sa „posunul“ o minúty | Synchronizácia je vypnutá | timedatectl set-ntp true |
| Úloha sa spustila v nesprávnej hodine | Zmenil si časové pásmo, ale plán zostal rovnaký | Prepočítaj crontab |
Časové pásmo zmeň predtým, než nastavíš úlohy zálohovania a logovania. Na živom stroji zmena časového pásma znamená revíziu všetkých plánov naraz.