Plus facile à lire avec un fond crème, une teinte, plus de contraste ou un texte plus grand ? Choisissez vos couleurs et votre texte, une fois pour toutes les pages.

Leçon gratuite

Trouver une panne dans un journal

Après cette leçon: Je peux trouver la cause d'une panne dans un journal et la corriger.

Leçon de 45 min8 commandesLab Linux du quotidien : la trentaine de commandes que les ingénieurs tapent de tête

Le site ne répond plus

Trouver une panne, c'est remonter d'un symptôme, ce que l'utilisateur voit, jusqu'à sa cause. Le journal du système, un fichier où les programmes notent ce qu'ils font, dit presque toujours pourquoi.

Aujourd'hui, tu apprends une méthode : lire le journal, trouver la cause, corriger, puis vérifier.

À la fin de cette leçon

Remarque

Je peux trouver la cause d'une panne dans un journal et la corriger.

Mots clés

MotCe que ça veut direExemple
Symptômece que l'utilisateur voit quand ça ne marche pas
Causece qui a provoqué la panne
Journalun fichier où un programme note ce qu'il fait/var/log/test.log
Niveaule mot qui dit si une ligne est une info ou une erreurERROR
Code de réponsele nombre qu'un serveur web renvoie, 200 si tout va bien

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Avant de commencer

Remarque

Appuie sur Start the lab dans la barre en haut et attends que la machine soit prête. Le lab écrit un journal, /var/log/test.log, qui grossit toutes les deux secondes. Pour compter, tu lis seulement ses 60 premières lignes, qui ne changent pas.

Une méthode en quatre temps

Un technicien ne devine pas : il suit une méthode. 1. Reproduire la panne et noter le symptôme. 2. Lire le journal pour trouver la cause. 3. Corriger, une seule chose à la fois. 4. Vérifier que la panne a disparu.

Ne change jamais deux choses d'un coup : tu ne saurais pas laquelle a réglé le problème.

Une ligne de journal a des champs

Un journal est un fichier de texte : une ligne par événement, avec la date, l'heure, le niveau et le message. Le lab écrit ses messages en anglais. Les erreurs portent le niveau ERROR.

grep -c compte les lignes qui contiennent un mot. Le tube | envoie le résultat d'une commande à la suivante. cut -d' ' -f3 garde le troisième champ, sort trie, et uniq -c compte les lignes identiques qui se suivent.

Lire une ligne de journal

ChampExempleRôle
12026-10-26la date
214:02:11l'heure
3ERRORle niveau
4 et suivantspayment service did not answerle message

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Compte les erreurs des 60 premières lignes

Commande
head -n 60 /var/log/test.log | grep -c ERROR

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Compte chaque niveau

Commande
head -n 60 /var/log/test.log | cut -d' ' -f3 | sort | uniq -c

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Reproduire une vraie panne

Tu vas créer une panne toi-même. Le service web lab-web doit répondre sur le port 8000. Tu l'arrêtes, tu vois le symptôme, tu trouves la cause, puis tu corriges.

curl demande une page à un serveur. Avec l'option -w, il affiche le code de réponse : 200 si tout va bien, 000 si personne ne répond.

Provoque la panne

Commande
sudo systemctl stop lab-web

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Constate le symptôme

Commande
curl -s --noproxy '*' -o /dev/null -w '%{http_code}' http://localhost:8000/hello.txt

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Cherche la cause : le service tourne-t-il ?

Commande
systemctl is-active lab-web

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Corrige : redémarre le service

Commande
sudo systemctl start lab-web

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Laisse-lui deux secondes pour démarrer

Commande
sleep 2

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Vérifie que la page répond

Commande
curl -s --noproxy '*' -o /dev/null -w '%{http_code}' http://localhost:8000/hello.txt

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Une erreur fréquente

Attention

Beaucoup pensent qu'on règle une panne en redémarrant tout. Redémarrer cache parfois le symptôme et efface la preuve. Lis d'abord le journal : la cause y est, et sans la corriger, la même panne reviendra.

À propos de ce labo et de sa source: Lab Linux du quotidien : la trentaine de commandes que les ingénieurs tapent de tête

Vous enseignez à une classe ? Proposez ce module à vos étudiants avec un guide de l'enseignant, des devoirs corrigés et un laboratoire pour chaque étudiant.