Commande Linux journalctl
Qu'est-ce que journalctl ?
journalctl est un outil puissant sous Linux pour interroger et afficher les journaux systemd. En tant que composant de l'écosystème systemd, il fournit une gestion centralisée des journaux, remplaçant le service syslog traditionnel.
Fonctionnalités principales
- Stockage binaire des journaux: Les journaux sont stockés dans un format binaire pour améliorer l'efficacité de récupération.
- Journaux structurés: Prend en charge l'association de métadonnées et de champs de journal structurés.
- Surveillance en temps réel: Permet de suivre les modifications des journaux en temps réel.
- Plusieurs méthodes de filtrage: Prend en charge le filtrage par temps, service, priorité, et de nombreuses autres conditions.
Syntaxe de base
Le format de commande de base pour journalctl est le suivant :
journalctl [选项] [匹配条件...]
Aperçu des options courantes
| Option | Description |
|---|---|
-b |
Afficher les journaux du démarrage actuel |
-f |
Suivre les journaux (similaire à tail -f) |
-k |
Afficher uniquement les messages du noyau |
-u |
Afficher les journaux d'une unité spécifiée |
-n |
Afficher les n entrées de journal les plus récentes |
--since |
Afficher les journaux après un moment spécifié |
--until |
Afficher les journaux avant une heure spécifiée |
Exemples d'utilisation courants
1. Afficher l'intégralité des journaux système
Exemple
journalctl
2. Afficher les journaux du démarrage actuel
Exemple
journalctl -b
3. Surveiller les nouveaux journaux en temps réel
Exemple
journalctl -f
4. Afficher les journaux d'un service spécifique
Exemple
journalctl -u nginx.service
5. Interroger par plage horaire
Exemple
journalctl --since "2023-01-01 00:00:00" --until "2023-01-02 12:00:00"
6. Afficher les journaux de niveau erreur
Exemple
journalctl -p err
Filtrage par priorité des journaux
journalctl prend en charge le filtrage par priorité de journal. Les priorités sont définies comme suit :
| Priorité | Valeur | Description |
|---|---|---|
| emerg | 0 | Urgence |
| alert | 1 | Nécessite un traitement immédiat |
| crit | 2 | Critique |
| err | 3 | Erreur |
| warning | 4 | Avertissement |
| notice | 5 | Notification |
| informations | 6 | Informationnel |
| debug | 7 | Debug |
Exemples d'utilisation :
Exemple
# Afficher les journaux au niveau d'erreur et au-dessus
journalctl -p err
# Afficher les journaux au niveau d'avertissement et au-dessus
journalctl -p avertissement
journalctl -p err
# Afficher les journaux au niveau d'avertissement et au-dessus
journalctl -p avertissement
Utilisation avancée
1. Afficher l'espace disque utilisé par les journaux
Exemple
journalctl --disk-usage
2. Nettoyer les anciens journaux
Exemple
# Conserver les journaux des 2 derniers jours
journalctl --vacuum-time=2d
# Limiter l'utilisation maximale des journaux à 500MB
journalctl --vacuum-size=500M
journalctl --vacuum-time=2d
# Limiter l'utilisation maximale des journaux à 500MB
journalctl --vacuum-size=500M
3. Sortie au format JSON
Exemple
journalctl -o json
4. Afficher les informations complètes des champs
Exemple
journalctl -o verbose
5. Filtrer par champ spécifique
Exemple
# Afficher les journaux pour un ID de processus spécifique
journalctl _PID=1234
# Afficher les journaux pour un utilisateur spécifique
journalctl _UID=1000
journalctl _PID=1234
# Afficher les journaux pour un utilisateur spécifique
journalctl _UID=1000
Conseils pratiques
1. Requêtes combinées
Exemple
# Interroger les journaux d'erreurs du service nginx depuis hier
journalctl -u nginx.service --since yesterday -p err
journalctl -u nginx.service --since yesterday -p err
2. Afficher avec pagination
Exemple
journalctl | less
3. Exporter les journaux vers un fichier
Exemple
journalctl --since "2023-01-01" > journal.log
4. Afficher les messages du tampon circulaire du noyau
Exemple
journalctl -k
5. Afficher les journaux du processus de démarrage du système
Exemple
journalctl -b0 | grep "Starting"
Solutions aux problèmes courants
Problème 1 : Affichage incomplet des journaux
Solution:
Exemple
# Augmenter la limite de lignes de sortie
journalctl --no-pager
journalctl --no-pager
Problème 2 : Comment afficher les anciens journaux après rotation ?
Solution:
Exemple
# Afficher tous les journaux (y compris ceux archivés)
journalctl -a
journalctl -a
Problème 3 : Comment afficher les journaux à un instant précis ?
Solution:
Exemple
# Requête temporelle précise à la seconde
journalctl --since "2023-01-01 12:00:00" --until "2023-01-01 12:05:00"
journalctl --since "2023-01-01 12:00:00" --until "2023-01-01 12:05:00"
Organigramme récapitulatif

Référence des commandes Linux