Présentation
Le dmesg
La commande est un utilitaire Linux qui affiche les messages liés au noyau extraits du tampon en anneau du noyau. Le tampon en anneau stocke des informations sur le matériel, l'initialisation du pilote de périphérique et les messages des modules du noyau qui ont lieu lors du démarrage du système.
Le dmesg
La commande est inestimable lors du dépannage des erreurs liées au matériel, des avertissements et du diagnostic des pannes de périphérique.
Dans ce didacticiel, vous apprendrez à utiliser le dmesg
commande sous Linux.
Prérequis
- Un système informatique exécutant Linux.
- Un compte utilisateur avec des privilèges d'administrateur.
Syntaxe et options
Le dmesg
de base la syntaxe de la commande est :
dmesg [options]
Le tableau ci-dessous répertorie les dmesg
les plus couramment utilisés option :
Option | Description |
---|---|
-C, --clear | Efface le tampon circulaire. |
-c, --read-clear | Imprime le contenu du tampon circulaire puis efface. |
-f, --facility [list] | Limite la sortie à l'installation spécifiée séparée par des virgules [list] . |
-H, --human | Active une sortie lisible par l'homme. |
-L, --color[=auto|never|always] | Ajoute de la couleur à la sortie. Omettre le [auto|never|always] les arguments par défaut sont auto. |
-l, --level [list] | Limite la sortie à la liste de niveaux séparés par des virgules spécifiée. |
--noescape | Désactive la fonctionnalité d'échappement automatique des caractères non imprimables et potentiellement dangereux. |
-S, --syslog | Instruit dmesg pour utiliser l'interface du noyau syslog pour lire les messages du noyau. La valeur par défaut est d'utiliser /dev/kmsg au lieu de syslog . |
-s, --buffer-size [size] | Utilise la taille de tampon spécifiée pour interroger le tampon en anneau du noyau. La valeur par défaut est 16392. |
-T, --ctime | Imprime des horodatages lisibles par l'homme. |
-t, --notime | Instruit dmesg de ne pas imprimer les horodatages du noyau. |
--time-format [format] | Imprime les horodatages en utilisant le [format] spécifié . Les formats acceptés sont ctime , reltime , delta , et iso (un dmesg implémentation du format ISO-8601). |
-w, --follow | Conserve dmesg courir et attendre de nouveaux messages. La fonctionnalité est disponible uniquement sur les systèmes avec un /dev/kmsg lisible fichier. |
-x, --decode | Décode les numéros d'installation et de niveau en préfixes lisibles par l'homme. |
-h, --help | Affiche le fichier d'aide avec toutes les options disponibles. |
Exemples de commande Linux dmesg
Les exemples sont courants dmesg
cas d'utilisation des commandes.
Afficher tous les messages du tampon circulaire du noyau
Appel de dmesg
sans aucune option affiche l'intégralité du tampon du noyau, sans arrêts et sans aucun moyen de naviguer dans la sortie.
sudo dmesg
L'exemple ci-dessus est un dmesg
partiel sortie de commande. Pour une navigation plus facile et une meilleure lisibilité, dirigez le dmesg
sortie dans un téléavertisseur de terminal tel que less
, more
, ou utilisez grep .
Par exemple :
sudo dmesg | less
Tuyauterie dmesg
en less
vous permet d'utiliser la fonction de recherche pour localiser et mettre en surbrillance des éléments. Activez la recherche en appuyant sur / . Accédez à l'écran suivant à l'aide de la barre d'espace , ou inverser en utilisant le B clé. Quittez la sortie en appuyant sur Q .
Afficher les messages colorés
Par défaut, dmesg
produit une sortie colorée. Si la sortie n'est pas colorée, utilisez le -L
possibilité de colorier.
sudo dmesg -L
Pour désactiver les sorties colorées, ajoutez le --color=never
option pour dmesg
. Exécutez la commande suivante :
sudo dmesg --color=never
Le dmesg
par défaut la sortie est maintenant uniforme en couleur.
Afficher les messages au fur et à mesure qu'ils arrivent
Surveillez le tampon circulaire du noyau en temps réel à l'aide de --follow
option. L'option indique à la commande d'attendre les nouveaux messages liés au matériel ou aux modules du noyau après le démarrage du système.
Exécutez le dmesg
suivant commande pour activer la surveillance en temps réel du tampon circulaire du noyau :
sudo dmesg --follow
La commande affiche tous les nouveaux messages en bas de la fenêtre du terminal. Arrêtez le processus en utilisant Ctrl+C .
Rechercher un terme spécifique
Lorsque vous recherchez des problèmes spécifiques ou des messages matériels, dirigez le dmesg
sortie dans grep
pour rechercher une chaîne ou un modèle particulier.
Par exemple, si vous recherchez des messages sur la mémoire, exécutez la commande suivante :
dmesg | grep -i memory
La sortie affiche toutes les lignes du tampon contenant la memory
corde. Le -i
(ignorer la casse) le commutateur ignore la sensibilité aux soins.
Sinon, si vous recherchez des messages tampons sur l'USB, les ports série, le réseau ou les disques durs, exécutez les commandes suivantes :
USB
dmesg | grep -i usb
Ports série
dmesg | grep -i tty
Réseau
dmesg | grep -i eth
Disques durs
sudo dmesg | grep -i sda
Recherchez plusieurs termes à la fois en ajoutant le -E
option pour grep
et fournir les termes de recherche entre guillemets, séparés par des délimiteurs pipe. Par exemple :
sudo dmesg | grep -E "memory|tty"
La sortie imprime tous les messages contenant l'un des termes de recherche.
Lire et effacer les journaux dmesg
Le -c
(--read-clear
) vous permet d'effacer le dmesg
log après l'avoir imprimé. L'effacement du tampon garantit que vous n'avez que des messages valides du dernier redémarrage.
Exécutez la commande suivante :
sudo dmesg -c
Réexécution de dmesg
n'a aucune sortie depuis que le journal a été effacé.
Activer les horodatages dans les journaux dmesg
Activer les horodatages dans dmesg
sortie en l'ajoutant avec le -H
(--human
), qui produit une sortie lisible par l'homme et dirige automatiquement la sortie vers un téléavertisseur (less
).
Exécutez la commande suivante :
sudo dmesg -H
La commande ajoute un horodatage avec la date et l'heure résolues en minutes. Les événements de la même minute sont étiquetés avec des secondes et des nanosecondes.
Quittez le téléavertisseur en appuyant sur Q .
Activer les horodatages lisibles par l'homme
Activer les horodatages lisibles par l'homme à l'aide de -T
(--ctime
) option. L'option supprime la précision à la nanoseconde de la sortie, mais les horodatages sont plus faciles à suivre.
sudo dmesg -T
Les horodatages dans la sortie sont des dates et des heures standard, et la résolution est en minutes. Le même horodatage est ajouté au début de chaque action qui s'est produite dans la même minute.
Choisir le format d'horodatage
Utilisez le --time-format [format]
possibilité de choisir le format d'horodatage. Les formats disponibles sont :
ctime
reltime
delta
notime
iso
Par exemple, pour utiliser le iso
formater, exécutez :
sudo dmesg --time-format=iso
Le format d'horodatage est maintenant YYYY-MM-DD<T>HH:MM:SS,<microseconds>←+><timezone offset from UTC>
.
Limiter la sortie dmesg à une installation spécifique
Filtrer le dmesg
sortie vers une catégorie spécifique en utilisant le -f
option. Le système regroupe les messages du tampon circulaire du noyau dans les fonctions (catégories) suivantes :
kern
. Messages du noyau.user
. Messages au niveau de l'utilisateur.mail
. Messages du système de messagerie.daemon
. Messages sur les démons système.auth
. Messages d'autorisation.syslog
.syslogd
interne messages.lpr
. Messages du sous-système d'imprimante de ligne.news
. Messages du sous-système d'actualités du réseau.
Par exemple, la commande suivante limite la sortie aux messages liés au syslog
établissement :
sudo dmesg -f syslog
Pour répertorier les messages de plusieurs installations, spécifiez une liste d'installations séparées par des virgules. Par exemple :
sudo dmesg -f syslog,daemon
Filtrer les niveaux de journal
Le dmesg
La commande associe à chaque message du buffer un niveau de log caractérisant l'importance du message. Les niveaux disponibles sont :
emerg
. Messages d'urgence.alert
. Alertes nécessitant une action immédiate.crit
. Conditions critiques.err
. Messages d'erreur.warn
. Messages d'avertissement.notice
. Conditions normales mais significatives.info
. Messages d'information.debug
. Messages de niveau de débogage.
Instruire dmesg
pour n'imprimer que les messages correspondant à un certain niveau en utilisant le -l
option, suivi du nom du niveau. Par exemple :
sudo dmesg -l info
L'exemple ci-dessus extrait uniquement les messages d'information du journal.
Combinez plusieurs niveaux dans une liste séparée par des virgules pour récupérer les messages de ces niveaux. Par exemple :
sudo dmesg -l notice,warn
La sortie combine les messages des niveaux de journalisation spécifiés.
Combiner installation et niveau
Affichez explicitement la fonction et le niveau de journalisation de chaque message tampon au début de chaque ligne à l'aide de -x
(décoder).
Par exemple :
sudo dmesg -x
Dans l'exemple ci-dessus, chaque ligne est précédée de l'installation et du niveau de journal appropriés.
Lire le fichier journal dmesg
Chaque fois que le système démarre, les messages du tampon circulaire du noyau sont stockés dans le /var/log/dmesg dossier. Le dmesg
La commande affiche le contenu du fichier journal. Si vous rencontrez des problèmes lors de l'utilisation de dmesg
commande, ouvrez le fichier journal dans un éditeur de texte pour afficher le contenu.
Dans l'exemple ci-dessous, nous utilisons la commande cat pour afficher le fichier journal et le diriger vers grep
pour rechercher une chaîne particulière apparaissant dans le journal :
cat dmesg | grep amd
La commande affiche tous les amd
instances de chaîne dans le fichier journal.
Recherchez un lecteur de CD
Vérifiez si une machine distante est équipée d'un lecteur de CD en consultant le journal des messages de la mémoire tampon. Par exemple, la commande suivante affiche tous les messages concernant les périphériques CD initialisés au démarrage :
sudo dmesg | grep -iE 'cdrom|dvd|cd/rw|cd-rom'
Les résultats affichent des informations sur les lecteurs de CD-ROM disponibles, y compris le lecteur de CD-ROM virtuel sur cette machine.
Supprimer l'exigence sudo
La suppression de l'exigence de privilèges de superutilisateur permet à n'importe quel utilisateur d'exécuter dmesg
et afficher les messages du tampon circulaire du noyau. Exécutez la commande suivante pour supprimer l'exigence sudo :
sudo sysctl -w kernel.dmesg_restrict=0
Après avoir défini les restrictions sur 0
, n'importe quel utilisateur du système peut exécuter dmesg
.