Table des matières

  1. Introduction et Concepts
  2. Architecture du Temps sous Linux
  3. Prérequis
  4. Vérifier la Configuration Actuelle
  5. Configurer le Fuseau Horaire
  6. Synchronisation NTP
  7. Configuration Manuelle
  8. Horloge Matérielle (RTC)
  9. Dépannage
  10. Bonnes Pratiques

Introduction et Concepts

Pourquoi le Fuseau Horaire est Important ?

La configuration correcte du fuseau horaire est essentielle pour :

  • Logs système : horodatage précis des événements
  • Tâches planifiées (cron) : exécution à l'heure prévue
  • Certificats SSL : validation des dates d'expiration
  • Bases de données : cohérence des timestamps
  • Applications : affichage correct de l'heure aux utilisateurs
┌─────────────────────────────────────────────────────────────────────────────┐
│                    IMPORTANCE DU FUSEAU HORAIRE                             │
└─────────────────────────────────────────────────────────────────────────────┘

                    SERVEUR MAL CONFIGURÉ              SERVEUR BIEN CONFIGURÉ
                    ─────────────────────              ──────────────────────

    ┌─────────────────────────────┐        ┌─────────────────────────────┐
    │  Heure système : 14:00 UTC  │        │  Heure système : 14:00 UTC  │
    │  Fuseau : UTC (incorrect)   │        │  Fuseau : Europe/Paris      │
    └──────────────┬──────────────┘        └──────────────┬──────────────┘
                   │                                      │
         ┌─────────┴─────────┐                  ┌─────────┴─────────┐
         ▼                   ▼                  ▼                   ▼
    ┌─────────┐        ┌─────────┐        ┌─────────┐        ┌─────────┐
    │  Cron   │        │  Logs   │        │  Cron   │        │  Logs   │
    │ 14:00   │        │ 14:00   │        │ 15:00   │        │ 15:00   │
    │  (UTC)  │        │  (UTC)  │        │ (Paris) │        │ (Paris) │
    └─────────┘        └─────────┘        └─────────┘        └─────────┘
         │                   │                  │                   │
         ▼                   ▼                  ▼                   ▼
    ┌─────────────────────────────┐        ┌─────────────────────────────┐
    │  ❌ Tâches décalées de 1h   │        │  ✅ Tâches à l'heure locale │
    │  ❌ Logs difficiles à lire  │        │  ✅ Logs cohérents          │
    │  ❌ Debug complexe          │        │  ✅ Debug facilité          │
    └─────────────────────────────┘        └─────────────────────────────┘

Concepts Clés

┌─────────────────────────────────────────────────────────────────────────────┐
│                    CONCEPTS DE TEMPS SOUS LINUX                             │
└─────────────────────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────────────────────┐
│                                                                             │
│  UTC (Coordinated Universal Time)                                          │
│  ─────────────────────────────────                                          │
│  • Temps universel de référence                                            │
│  • Ne change jamais (pas d'heure d'été)                                    │
│  • Base pour tous les fuseaux horaires                                     │
│                                                                             │
│  ────────────────────────────────────────────────────────────────────────   │
│                                                                             │
│  Fuseau Horaire (Timezone)                                                 │
│  ─────────────────────────                                                  │
│  • Décalage par rapport à UTC                                              │
│  • Format : Continent/Ville (ex: Europe/Paris)                             │
│  • Gère automatiquement l'heure d'été (DST)                                │
│                                                                             │
│  ────────────────────────────────────────────────────────────────────────   │
│                                                                             │
│  Horloge Système vs Horloge Matérielle                                     │
│  ─────────────────────────────────────                                      │
│  • Système : gérée par le noyau Linux (en mémoire)                         │
│  • Matérielle (RTC) : dans le BIOS, fonctionne même éteint                 │
│                                                                             │
└─────────────────────────────────────────────────────────────────────────────┘

Architecture du Temps sous Linux

Vue d'Ensemble

┌─────────────────────────────────────────────────────────────────────────────┐
│                    ARCHITECTURE DU TEMPS LINUX                              │
└─────────────────────────────────────────────────────────────────────────────┘

                           SERVEURS NTP
                           (time.google.com, etc.)
                                  │
                                  │ Synchronisation
                                  ▼
    ┌─────────────────────────────────────────────────────────────────────┐
    │                      ESPACE UTILISATEUR                             │
    │                                                                     │
    │   ┌───────────────────────────────────────────────────────────┐    │
    │   │                    timedatectl                            │    │
    │   │              (Interface principale)                       │    │
    │   │                                                           │    │
    │   │  • Afficher/modifier le fuseau horaire                   │    │
    │   │  • Activer/désactiver NTP                                │    │
    │   │  • Modifier la date et l'heure                           │    │
    │   └───────────────────────────────────────────────────────────┘    │
    │                              │                                      │
    │              ┌───────────────┼───────────────┐                      │
    │              ▼               ▼               ▼                      │
    │   ┌─────────────────┐ ┌─────────────┐ ┌─────────────────┐          │
    │   │  systemd-       │ │   chronyd   │ │     ntpd        │          │
    │   │  timesyncd      │ │             │ │                 │          │
    │   │  (client NTP    │ │  (client    │ │  (client NTP    │          │
    │   │   par défaut)   │ │   NTP)      │ │   classique)    │          │
    │   └─────────────────┘ └─────────────┘ └─────────────────┘          │
    │                              │                                      │
    └──────────────────────────────┼──────────────────────────────────────┘
                                   │
    ═══════════════════════════════╪════════════════════════════════════════
                                   │
    ┌──────────────────────────────┼──────────────────────────────────────┐
    │                              ▼              ESPACE NOYAU            │
    │   ┌───────────────────────────────────────────────────────────┐    │
    │   │                 HORLOGE SYSTÈME                           │    │
    │   │              (System Clock / Kernel)                      │    │
    │   │                                                           │    │
    │   │  • Compte les secondes depuis le 1er janvier 1970        │    │
    │   │  • Stockée en mémoire (se perd à l'arrêt)                │    │
    │   │  • Temps en UTC en interne                               │    │
    │   └───────────────────────────────────────────────────────────┘    │
    │                              │                                      │
    └──────────────────────────────┼──────────────────────────────────────┘
                                   │
                                   ▼
    ┌─────────────────────────────────────────────────────────────────────┐
    │                    HORLOGE MATÉRIELLE (RTC)                         │
    │                         (BIOS/UEFI)                                 │
    │                                                                     │
    │  • Alimentée par pile (fonctionne serveur éteint)                  │
    │  • Synchronisée au démarrage avec l'horloge système                │
    │  • Peut être en UTC ou en heure locale                             │
    └─────────────────────────────────────────────────────────────────────┘

Fichiers de Configuration

┌─────────────────────────────────────────────────────────────────────────────┐
│                    FICHIERS DE CONFIGURATION                                │
└─────────────────────────────────────────────────────────────────────────────┘

    /etc/
    ├── localtime          →  Lien symbolique vers le fuseau horaire actif
    │                          (pointe vers /usr/share/zoneinfo/...)
    │
    ├── timezone           →  Fichier texte contenant le nom du fuseau
    │                          (ex: "Europe/Paris")
    │
    └── systemd/
        └── timesyncd.conf →  Configuration du client NTP

    /usr/share/zoneinfo/
    ├── Africa/
    │   ├── Abidjan
    │   ├── Algiers
    │   └── ...
    ├── America/
    │   ├── New_York
    │   ├── Los_Angeles
    │   └── ...
    ├── Asia/
    │   ├── Tokyo
    │   ├── Shanghai
    │   └── ...
    ├── Europe/
    │   ├── Paris          ←  Fuseau horaire France
    │   ├── London
    │   ├── Berlin
    │   └── ...
    └── ...

    Exemple de lien symbolique :
    /etc/localtime → /usr/share/zoneinfo/Europe/Paris

Prérequis

Configuration Requise

┌─────────────────────────────────────────────────────────────────┐
│                    PRÉREQUIS SYSTÈME                            │
├─────────────────────┬───────────────────────────────────────────┤
│  Élément            │  Requis                                   │
├─────────────────────┼───────────────────────────────────────────┤
│  Système            │  Ubuntu 18.04+ / Debian 9+ / CentOS 7+   │
│  Accès              │  root ou sudo                             │
│  Systemd            │  Oui (timedatectl nécessite systemd)     │
│  Réseau             │  Connexion Internet (pour NTP)           │
└─────────────────────┴───────────────────────────────────────────┘

Vérifications Préalables

# Vérifier que systemd est installé
systemctl --version

# Vérifier les droits sudo
sudo whoami

# Vérifier la connectivité réseau (pour NTP)
ping -c 3 time.google.com

Vérifier la Configuration Actuelle

Commande timedatectl

# Afficher toutes les informations de temps
timedatectl
┌─────────────────────────────────────────────────────────────────────────────┐
│                    SORTIE DE TIMEDATECTL                                    │
└─────────────────────────────────────────────────────────────────────────────┘

$ timedatectl

               Local time: sam. 2025-01-25 15:30:45 CET
           Universal time: sam. 2025-01-25 14:30:45 UTC
                 RTC time: sam. 2025-01-25 14:30:45
                Time zone: Europe/Paris (CET, +0100)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

┌─────────────────────────────────────────────────────────────────────────────┐
│  EXPLICATION DES CHAMPS :                                                   │
│                                                                             │
│  Local time      → Heure locale (avec fuseau horaire appliqué)             │
│  Universal time  → Heure UTC (référence mondiale)                          │
│  RTC time        → Heure de l'horloge matérielle (BIOS)                    │
│  Time zone       → Fuseau horaire actuel (Continent/Ville)                 │
│  System clock synchronized → Synchronisation NTP active ?                  │
│  NTP service     → Service de synchronisation actif ?                      │
│  RTC in local TZ → L'horloge matérielle est-elle en heure locale ?        │
│                                                                             │
└─────────────────────────────────────────────────────────────────────────────┘

Autres Méthodes de Vérification

# Afficher la date et l'heure
date

# Afficher uniquement le fuseau horaire
cat /etc/timezone

# Voir le lien symbolique localtime
ls -la /etc/localtime

# Afficher l'heure UTC
date -u

Configurer le Fuseau Horaire

Méthode 1 : Avec timedatectl (Recommandée)

Étape 1 : Lister les Fuseaux Horaires Disponibles

# Lister tous les fuseaux horaires
timedatectl list-timezones

# Filtrer par région (Europe)
timedatectl list-timezones | grep Europe

# Filtrer par pays (France)
timedatectl list-timezones | grep Paris

# Filtrer par continent
timedatectl list-timezones | grep America
timedatectl list-timezones | grep Asia
timedatectl list-timezones | grep Africa
┌─────────────────────────────────────────────────────────────────────────────┐
│                    FUSEAUX HORAIRES COURANTS                                │
└─────────────────────────────────────────────────────────────────────────────┘

┌─────────────────────────┬───────────┬────────────────────────────────────────┐
│  Fuseau Horaire         │  Décalage │  Pays/Région                           │
├─────────────────────────┼───────────┼────────────────────────────────────────┤
│  Europe/Paris           │  UTC+1/+2 │  France, Belgique, Luxembourg          │
│  Europe/London          │  UTC+0/+1 │  Royaume-Uni, Irlande                  │
│  Europe/Berlin          │  UTC+1/+2 │  Allemagne, Autriche                   │
│  Europe/Madrid          │  UTC+1/+2 │  Espagne                               │
│  Europe/Rome            │  UTC+1/+2 │  Italie                                │
│  Europe/Zurich          │  UTC+1/+2 │  Suisse                                │
├─────────────────────────┼───────────┼────────────────────────────────────────┤
│  America/New_York       │  UTC-5/-4 │  États-Unis (Est)                      │
│  America/Los_Angeles    │  UTC-8/-7 │  États-Unis (Ouest)                    │
│  America/Chicago        │  UTC-6/-5 │  États-Unis (Centre)                   │
│  America/Toronto        │  UTC-5/-4 │  Canada (Est)                          │
│  America/Montreal       │  UTC-5/-4 │  Québec, Canada                        │
├─────────────────────────┼───────────┼────────────────────────────────────────┤
│  Asia/Tokyo             │  UTC+9    │  Japon                                 │
│  Asia/Shanghai          │  UTC+8    │  Chine                                 │
│  Asia/Dubai             │  UTC+4    │  Émirats Arabes Unis                   │
│  Asia/Singapore         │  UTC+8    │  Singapour                             │
├─────────────────────────┼───────────┼────────────────────────────────────────┤
│  Africa/Casablanca      │  UTC+1    │  Maroc                                 │
│  Africa/Tunis           │  UTC+1    │  Tunisie                               │
│  Africa/Algiers         │  UTC+1    │  Algérie                               │
├─────────────────────────┼───────────┼────────────────────────────────────────┤
│  Pacific/Tahiti         │  UTC-10   │  Polynésie française                   │
│  Indian/Reunion         │  UTC+4    │  La Réunion                            │
│  America/Martinique     │  UTC-4    │  Martinique                            │
│  America/Guadeloupe     │  UTC-4    │  Guadeloupe                            │
└─────────────────────────┴───────────┴────────────────────────────────────────┘

Étape 2 : Définir le Fuseau Horaire

# Définir le fuseau horaire sur Paris
sudo timedatectl set-timezone Europe/Paris

# Vérifier le changement
timedatectl
┌─────────────────────────────────────────────────────────────────────────────┐
│                    PROCESSUS DE CHANGEMENT DE FUSEAU HORAIRE                │
└─────────────────────────────────────────────────────────────────────────────┘

    AVANT                                    APRÈS
    ─────                                    ─────

    Time zone: UTC (+0000)                   Time zone: Europe/Paris (CET, +0100)

    ┌─────────────────────┐                  ┌─────────────────────┐
    │ /etc/localtime      │                  │ /etc/localtime      │
    │         │           │                  │         │           │
    │         ▼           │                  │         ▼           │
    │ /usr/share/zoneinfo/│    ────────▶     │ /usr/share/zoneinfo/│
    │     Etc/UTC         │   timedatectl    │   Europe/Paris      │
    └─────────────────────┘   set-timezone   └─────────────────────┘

    Local time: 14:30:00                     Local time: 15:30:00
                                             (+1 heure en hiver)

Méthode 2 : Avec dpkg-reconfigure (Debian/Ubuntu)

# Interface interactive
sudo dpkg-reconfigure tzdata
┌─────────────────────────────────────────────────────────────────────────────┐
│                    INTERFACE DPKG-RECONFIGURE                               │
└─────────────────────────────────────────────────────────────────────────────┘

    ┌────────────────────────────────────────────────────────────────┐
    │                    Configuring tzdata                          │
    │                                                                │
    │  Please select the geographic area in which you live.          │
    │                                                                │
    │           Africa                                               │
    │           America                                              │
    │           Antarctica                                           │
    │           Asia                                                 │
    │           Atlantic                                             │
    │           Australia                                            │
    │         ▶ Europe                                               │
    │           Indian                                               │
    │           Pacific                                              │
    │                                                                │
    │                    <Ok>            <Cancel>                    │
    └────────────────────────────────────────────────────────────────┘

                                   │
                                   ▼

    ┌────────────────────────────────────────────────────────────────┐
    │                    Configuring tzdata                          │
    │                                                                │
    │  Please select the city or region corresponding to your        │
    │  time zone.                                                    │
    │                                                                │
    │           Oslo                                                 │
    │         ▶ Paris                                                │
    │           Podgorica                                            │
    │           Prague                                               │
    │                                                                │
    │                    <Ok>            <Cancel>                    │
    └────────────────────────────────────────────────────────────────┘

Méthode 3 : Manuelle (Lien Symbolique)

# Supprimer l'ancien lien
sudo rm /etc/localtime

# Créer le nouveau lien
sudo ln -s /usr/share/zoneinfo/Europe/Paris /etc/localtime

# Mettre à jour /etc/timezone
echo "Europe/Paris" | sudo tee /etc/timezone

# Vérifier
date

Synchronisation NTP

Comprendre NTP

┌─────────────────────────────────────────────────────────────────────────────┐
│                    FONCTIONNEMENT DE LA SYNCHRONISATION NTP                 │
└─────────────────────────────────────────────────────────────────────────────┘

                         SERVEURS NTP STRATRUM 1
                    (Horloges atomiques, GPS, etc.)
                                  │
                    ┌─────────────┼─────────────┐
                    ▼             ▼             ▼
             ┌───────────┐ ┌───────────┐ ┌───────────┐
             │ Stratum 2 │ │ Stratum 2 │ │ Stratum 2 │
             │  Server   │ │  Server   │ │  Server   │
             └─────┬─────┘ └─────┬─────┘ └─────┬─────┘
                   │             │             │
                   └─────────────┼─────────────┘
                                 │
              ┌──────────────────┼──────────────────┐
              ▼                  ▼                  ▼
    ┌──────────────────┐ ┌──────────────────┐ ┌──────────────────┐
    │ time.google.com  │ │  pool.ntp.org    │ │ time.cloudflare  │
    │    Stratum 2-3   │ │    Stratum 2-3   │ │    Stratum 2-3   │
    └────────┬─────────┘ └────────┬─────────┘ └────────┬─────────┘
             │                    │                    │
             └────────────────────┼────────────────────┘
                                  │
                                  ▼
                    ┌─────────────────────────┐
                    │    VOTRE SERVEUR        │
                    │                         │
                    │  systemd-timesyncd      │
                    │       ou chronyd        │
                    │       ou ntpd           │
                    │                         │
                    │  ┌───────────────────┐  │
                    │  │ Horloge Système   │  │
                    │  │    Synchronisée   │  │
                    │  └───────────────────┘  │
                    └─────────────────────────┘

    Précision typique : quelques millisecondes

Activer la Synchronisation NTP

# Activer la synchronisation NTP
sudo timedatectl set-ntp true

# Vérifier le statut
timedatectl

# Voir le statut détaillé du service
systemctl status systemd-timesyncd

Configurer les Serveurs NTP

# Éditer la configuration
sudo nano /etc/systemd/timesyncd.conf
# /etc/systemd/timesyncd.conf

[Time]
# Serveurs NTP principaux
NTP=time.google.com time.cloudflare.com

# Serveurs de secours
FallbackNTP=0.pool.ntp.org 1.pool.ntp.org 2.pool.ntp.org
# Redémarrer le service
sudo systemctl restart systemd-timesyncd

# Vérifier la synchronisation
timedatectl timesync-status
┌─────────────────────────────────────────────────────────────────────────────┐
│                    SORTIE TIMESYNC-STATUS                                   │
└─────────────────────────────────────────────────────────────────────────────┘

$ timedatectl timesync-status

       Server: 216.239.35.0 (time.google.com)
Poll interval: 34min 8s (min: 32s; max 34min 8s)
         Leap: normal
      Version: 4
      Stratum: 1
    Reference: GOOG
    Precision: 1us (-20)
Root distance: 335us (max: 5s)
       Offset: +2.156ms
        Delay: 15.533ms
       Jitter: 1.234ms
 Packet count: 12

Configuration Manuelle

Modifier la Date et l'Heure Manuellement

┌─────────────────────────────────────────────────────────────────────────────┐
│  ⚠️  ATTENTION                                                              │
│                                                                             │
│  Pour modifier manuellement la date/heure, vous DEVEZ d'abord              │
│  désactiver la synchronisation NTP !                                       │
│                                                                             │
│  Sinon, le système corrigera automatiquement vos modifications.            │
└─────────────────────────────────────────────────────────────────────────────┘
# 1. Désactiver NTP
sudo timedatectl set-ntp false

# 2. Modifier la date et l'heure
# Format : AAAA-MM-JJ HH:MM:SS
sudo timedatectl set-time "2025-01-25 15:30:00"

# OU modifier uniquement l'heure
sudo timedatectl set-time "15:30:00"

# OU modifier uniquement la date
sudo timedatectl set-time "2025-01-25"

# 3. Vérifier
timedatectl

# 4. Réactiver NTP (recommandé)
sudo timedatectl set-ntp true

Utiliser la Commande date

# Afficher la date actuelle
date

# Afficher en format personnalisé
date "+%Y-%m-%d %H:%M:%S"

# Modifier la date (nécessite NTP désactivé)
sudo date -s "2025-01-25 15:30:00"

# Modifier uniquement l'heure
sudo date +%T -s "15:30:00"

Horloge Matérielle (RTC)

Comprendre l'Horloge RTC

┌─────────────────────────────────────────────────────────────────────────────┐
│                    HORLOGE SYSTÈME vs HORLOGE MATÉRIELLE                    │
└─────────────────────────────────────────────────────────────────────────────┘

    ┌─────────────────────────────────────────────────────────────────────┐
    │                    HORLOGE SYSTÈME                                  │
    │                    (System Clock)                                   │
    │                                                                     │
    │  • Gérée par le noyau Linux                                        │
    │  • Stockée en RAM                                                  │
    │  • Se perd à l'extinction                                          │
    │  • Temps en UTC en interne                                         │
    │  • Convertie en heure locale pour l'affichage                      │
    └─────────────────────────────────────────────────────────────────────┘
                                   │
                                   │  hwclock --systohc
                                   │  (système → matériel)
                                   │
                                   │  hwclock --hctosys
                                   │  (matériel → système)
                                   ▼
    ┌─────────────────────────────────────────────────────────────────────┐
    │                    HORLOGE MATÉRIELLE                               │
    │                    (RTC - Real Time Clock)                         │
    │                                                                     │
    │  • Dans le BIOS/UEFI                                               │
    │  • Alimentée par pile bouton (CR2032)                              │
    │  • Fonctionne serveur éteint                                       │
    │  • Peut être en UTC ou heure locale                                │
    │  • Utilisée au démarrage pour initialiser l'horloge système        │
    └─────────────────────────────────────────────────────────────────────┘

Commande hwclock

# Afficher l'heure de l'horloge matérielle
sudo hwclock --show

# Synchroniser l'horloge matérielle avec le système
sudo hwclock --systohc

# Synchroniser le système avec l'horloge matérielle
sudo hwclock --hctosys

# Définir l'horloge matérielle en UTC (recommandé)
sudo hwclock --systohc --utc

# Définir l'horloge matérielle en heure locale
sudo hwclock --systohc --localtime
┌─────────────────────────────────────────────────────────────────────────────┐
│                    RTC EN UTC vs HEURE LOCALE                               │
└─────────────────────────────────────────────────────────────────────────────┘

    RTC EN UTC (Recommandé)                  RTC EN HEURE LOCALE
    ───────────────────────                  ────────────────────

    ✅ Pas de problème avec                  ❌ Problèmes avec l'heure
       l'heure d'été                            d'été (DST)

    ✅ Compatible dual-boot                  ❌ Conflits avec Windows
       avec Linux                               (qui utilise l'heure locale)

    ✅ Standard sur serveurs                 ❌ Décalages possibles

    ✅ Cohérent quelle que soit             ❌ Dépend du fuseau horaire
       la configuration

Dépannage

Problèmes Courants

┌─────────────────────────────────────────────────────────────────────────────┐
│                    ARBRE DE DÉCISION - DÉPANNAGE                            │
└─────────────────────────────────────────────────────────────────────────────┘

                    ┌─────────────────────────┐
                    │  L'heure est incorrecte │
                    └───────────┬─────────────┘
                                │
            ┌───────────────────┼───────────────────┐
            ▼                   ▼                   ▼
    ┌───────────────┐   ┌───────────────┐   ┌───────────────┐
    │ Décalage de   │   │ Heure totale- │   │ Heure correcte│
    │ quelques      │   │ ment fausse   │   │ mais mauvais  │
    │ secondes      │   │               │   │ fuseau        │
    └───────┬───────┘   └───────┬───────┘   └───────┬───────┘
            │                   │                   │
            ▼                   ▼                   ▼
    ┌───────────────┐   ┌───────────────┐   ┌───────────────┐
    │ Vérifier NTP  │   │ Vérifier RTC  │   │ Changer le    │
    │ timedatectl   │   │ hwclock --show│   │ fuseau horaire│
    │ set-ntp true  │   │               │   │               │
    └───────────────┘   └───────────────┘   └───────────────┘

Commandes de Diagnostic

# Vérifier le statut complet
timedatectl status

# Vérifier le service NTP
systemctl status systemd-timesyncd

# Voir les logs de synchronisation
journalctl -u systemd-timesyncd

# Vérifier l'horloge matérielle
sudo hwclock --show

# Comparer avec un serveur NTP
ntpdate -q pool.ntp.org

# Vérifier le fichier timezone
cat /etc/timezone

# Vérifier le lien localtime
ls -la /etc/localtime

Résolution des Problèmes

# Problème : NTP ne synchronise pas
# Solution :
sudo systemctl restart systemd-timesyncd
sudo timedatectl set-ntp true

# Problème : Fuseau horaire ne change pas
# Solution :
sudo timedatectl set-timezone Europe/Paris
sudo systemctl restart systemd-timesyncd

# Problème : Horloge RTC décalée
# Solution :
sudo hwclock --systohc --utc

# Problème : Erreur "Failed to set time"
# Solution : Désactiver NTP d'abord
sudo timedatectl set-ntp false
sudo timedatectl set-time "2025-01-25 15:30:00"

Bonnes Pratiques

Recommandations

┌─────────────────────────────────────────────────────────────────────────────┐
│                    BONNES PRATIQUES                                         │
└─────────────────────────────────────────────────────────────────────────────┘

  ✅ Toujours activer la synchronisation NTP sur les serveurs

  ✅ Utiliser UTC pour l'horloge matérielle (RTC)

  ✅ Configurer le bon fuseau horaire dès l'installation

  ✅ Utiliser des serveurs NTP fiables (Google, Cloudflare, pool.ntp.org)

  ✅ Vérifier régulièrement la synchronisation (monitoring)

  ✅ Documenter le fuseau horaire choisi pour l'équipe

  ✅ Pour les applications critiques, utiliser des timestamps UTC

  ✅ Synchroniser tous les serveurs d'un cluster sur le même NTP

Checklist de Configuration

┌─────────────────────────────────────────────────────────────────────────────┐
│                    CHECKLIST                                                │
└─────────────────────────────────────────────────────────────────────────────┘

  [ ] Fuseau horaire correct configuré
  [ ] NTP activé et synchronisé
  [ ] Horloge RTC en UTC
  [ ] Serveurs NTP configurés
  [ ] Service systemd-timesyncd actif
  [ ] Vérification : timedatectl montre "System clock synchronized: yes"

Récapitulatif des Commandes

┌─────────────────────────────────────────────────────────────────────────────┐
│                    AIDE-MÉMOIRE COMMANDES                                   │
└─────────────────────────────────────────────────────────────────────────────┘

┌────────────────────────────────────────┬────────────────────────────────────┐
│  Commande                              │  Description                       │
├────────────────────────────────────────┼────────────────────────────────────┤
│  timedatectl                           │  Afficher la configuration         │
│  timedatectl list-timezones            │  Lister les fuseaux horaires       │
│  timedatectl list-timezones | grep X   │  Filtrer les fuseaux               │
├────────────────────────────────────────┼────────────────────────────────────┤
│  sudo timedatectl set-timezone X       │  Définir le fuseau horaire         │
│  sudo timedatectl set-ntp true         │  Activer NTP                       │
│  sudo timedatectl set-ntp false        │  Désactiver NTP                    │
│  sudo timedatectl set-time "..."       │  Définir date/heure manuellement   │
├────────────────────────────────────────┼────────────────────────────────────┤
│  date                                  │  Afficher date/heure               │
│  date -u                               │  Afficher en UTC                   │
│  sudo date -s "..."                    │  Modifier date/heure               │
├────────────────────────────────────────┼────────────────────────────────────┤
│  sudo hwclock --show                   │  Afficher l'heure RTC              │
│  sudo hwclock --systohc                │  Sync système → RTC                │
│  sudo hwclock --hctosys                │  Sync RTC → système                │
├────────────────────────────────────────┼────────────────────────────────────┤
│  systemctl status systemd-timesyncd    │  Statut du service NTP             │
│  journalctl -u systemd-timesyncd       │  Logs du service NTP               │
└────────────────────────────────────────┴────────────────────────────────────┘

Exemples Pratiques

Serveur en France

# Configuration complète pour un serveur français
sudo timedatectl set-timezone Europe/Paris
sudo timedatectl set-ntp true
sudo hwclock --systohc --utc
timedatectl

Serveur au Québec

# Configuration pour le Québec
sudo timedatectl set-timezone America/Montreal
sudo timedatectl set-ntp true
timedatectl

Serveur Multi-Régional (UTC)

# Pour un serveur servant plusieurs régions, utiliser UTC
sudo timedatectl set-timezone UTC
sudo timedatectl set-ntp true
timedatectl