Skip to content
VDS · Systèmes d'exploitation

Fuseau horaire, locale et langue du système

Comment définir le fuseau horaire, activer la synchronisation de l'heure, configurer une locale UTF-8, et pourquoi les journaux et la base de données doivent être conservés en UTC.

Mis à jour le 23 août 2026

Une machine fraîchement installée fonctionne généralement en UTC avec un ensemble minimal de locales. Tant que vous ne consultez pas les journaux et n’exécutez pas de tâches planifiées, vous ne remarquerez rien. Dès que cron, les e-mails et les rapports entrent en jeu, l’heure et l’encodage deviennent primordiaux.

Fuseau horaire

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

timedatectl affiche l’heure locale, l’UTC et l’état de synchronisation. La ligne System clock synchronized: yes signifie que l’horloge est synchronisée via le réseau.

Si la synchronisation est désactivée :

timedatectl set-ntp true
systemctl status systemd-timesyncd

Sur AlmaLinux et CentOS Stream, c’est généralement chronyd qui gère l’heure :

systemctl enable --now chronyd
chronyc tracking

Locale

La locale détermine la langue des messages, l’encodage ainsi que le format des nombres et des dates. Le minimum requis est UTF-8 ; sinon, les noms de fichiers russes et la sortie des programmes se transforment en points d’interrogation.

Debian et Ubuntu :

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

AlmaLinux et CentOS Stream :

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

Vérification :

locale
locale -a | grep -i utf

Les modifications s’appliquent aux nouvelles sessions : reconnectez-vous en SSH.

Disposition du clavier dans la console

La vue « Screen » (VNC) dans l’onglet « Console » du panneau /hosting/vds/m/<id> transmet les frappes telles quelles. Si vous devez saisir du cyrillique directement à cet endroit :

localectl set-keymap ru

Les services n’en ont pas besoin : UTF-8 leur suffit.

Ce qu’il faut laisser en UTC

Il est raisonnable de conserver le système lui-même et la base de données en UTC, et de n’afficher l’heure locale qu’aux utilisateurs.

  • Les journaux en UTC sont comparables d’une machine à l’autre et ne sautent pas lors des changements d’heure.
  • Une base de données en UTC ne fausse pas le calcul des intervalles.
  • Cron calcule l’heure selon le fuseau horaire du système : si vous changez le fuseau horaire, relisez les planifications.
systemctl restart cron
crontab -l

Erreurs courantes

SymptômeCauseSolution
setlocale: LC_ALL: cannot change localeLe client envoie sa propre locale, mais elle n’existe pas sur le serveurGénérez la locale ou supprimez la transmission de LANG côté client
Caractères corrompus dans les noms de fichiersLa locale n’est pas en UTF-8LANG=ru_RU.UTF-8 puis reconnectez-vous
L’heure a « dérivé » de quelques minutesLa synchronisation est désactivéetimedatectl set-ntp true
La tâche s’est exécutée à la mauvaise heureVous avez changé le fuseau horaire mais la planification est restée identiqueRecalculez crontab

Changez le fuseau horaire avant de configurer les tâches de sauvegarde et la journalisation. Sur une machine en production, changer le fuseau horaire implique de revoir toutes les planifications d’un coup.