Documentation Technique – Automatisation du contrôle de synchronisation NTP (Script Bash)

**1) Contexte du projet**

Dans le cadre de mon alternance en BTS SIO, j’ai développé un script Bash permettant de vérifier automatiquement la synchronisation horaire entre plusieurs serveurs NTP.

La synchronisation du temps est un élément critique dans un système d’information, notamment pour :

- les journaux (logs)
- la sécurité (authentification, certificats)
- les services réseau

Ce projet vise à automatiser le contrôle de cohérence de l’heure entre serveurs.

**2) Objectifs**

- Vérifier la synchronisation entre plusieurs serveurs NTP
- Détecter les écarts horaires
- Automatiser l’analyse
- Générer un retour clair (OK / erreur)
- Produire un rapport en cas de problème

**3) Architecture du fonctionnement**

Le système repose sur plusieurs éléments :

- Serveurs NTP
> - ntp01.local
> - ntp02.local
> - ntp03.local

- Script Bash
> - Interroge les serveurs
> - Compare les heures
> - Analyse les écarts

- Sorties
> - Statut OK (synchronisation correcte)
> - Statut erreur (désynchronisation détectée)
> - Génération de logs

**4) Fonctionnement global**

Le processus suit plusieurs étapes :

- 4.1 Interrogation des serveurs NTP

Le script envoie une requête à chaque serveur :

- Récupération de l’heure système
- Vérification de la réponse NTP

Exemples d’outils utilisés :
- ntpq
- chronyc
- date

- 4.2 Comparaison des horaires

Le script compare les heures récupérées :

Calcul de l’écart entre serveurs

Définition d’un seuil  : max 10 secondes

Permet de détecter une désynchronisation

- 4.3 Analyse des résultats

Deux cas possibles :

- Cas 1 : Synchronisation correcte
> - Les écarts sont faibles
> - Tous les serveurs sont alignés

- Résultat :
> - Synchronisation OK – Statut : OK

- Cas 2 : Désynchronisation détectée
> - Écart trop important entre serveurs
> - Problème potentiel NTP

- Résultat :
> - Écart horaire détecté – Statut : Erreur

- 4.4 Génération d’un rapport

En cas d’erreur :

- Création d’un fichier log
- Enregistrement des écarts détectés
- Possibilité d’alerte

**5) Exemple de fonctionnement du script**

Étapes réalisées :

- Liste des serveurs NTP
- Boucle de vérification
- Récupération de l’heure
- Comparaison des valeurs
- Affichage du résultat

**6) Technologies utilisées**

- Bash (shell Linux)
- Commandes système :
> - ntpq
> - chronyc
> - awk, grep
> - date

**7) Bonnes pratiques appliquées**

- Script automatisé et réutilisable
- Code lisible et structuré
- Gestion des erreurs
- Utilisation de logs
- Séparation des étapes (collecte / analyse / résultat)

**8) Intérêt du projet**

- Gain de temps (vérification automatique)
- Détection rapide des anomalies
- Fiabilisation de l’infrastructure
- Réduction des erreurs humaines

**9) Compétences acquises**

- Scripting Bash
- Administration Linux
- Analyse réseau
- Automatisation de tâches
- Gestion des logs

**10) Conclusion**

Ce projet m’a permis de développer une solution simple et efficace pour automatiser le contrôle de synchronisation NTP.
Il met en évidence l’importance de l’automatisation dans la gestion des infrastructures informatiques.