GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment utiliser la commande Linux dmesg

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 .


Ubuntu
  1. Comment utiliser la commande Linux grep

  2. Comment utiliser la commande history sous Linux

  3. Comment utiliser la commande Apt-Get sous Linux

  4. Comment utiliser la commande sudo sous Linux

  5. Comment utiliser la commande hostname sous Linux

Comment utiliser la commande Linux xargs

Comment utiliser la commande Linux tee

Comment utiliser la commande top sous Linux

Comment utiliser la commande Linux Ping

Comment utiliser la commande Dig sous Linux

Comment utiliser la commande Linux Top