GNU/Linux >> Tutoriels Linux >  >> Linux

Commande Dmesg sous Linux

Le noyau Linux est le cœur du système d'exploitation qui contrôle l'accès aux ressources système, telles que le processeur, les périphériques d'E/S, la mémoire physique et les systèmes de fichiers. Le noyau écrit divers messages dans le tampon en anneau du noyau pendant le processus de démarrage et lorsque le système est en cours d'exécution. Ces messages comprennent diverses informations sur le fonctionnement du système.

Le tampon en anneau du noyau est une partie de la mémoire physique qui contient les messages du journal du noyau. Il a une taille fixe, ce qui signifie qu'une fois le tampon plein, les anciens enregistrements de journaux sont écrasés.

Le dmesg L'utilitaire de ligne de commande est utilisé pour imprimer et contrôler le tampon circulaire du noyau sous Linux et d'autres systèmes d'exploitation de type Unix. Il est utile pour examiner les messages de démarrage du noyau et déboguer les problèmes liés au matériel.

Dans ce tutoriel, nous couvrirons les bases du dmesg commande.

Utilisation de dmesg Commande #

La syntaxe du dmesg commande est la suivante :

dmesg [OPTIONS]

Lorsqu'il est invoqué sans aucune option dmesg écrit tous les messages du tampon circulaire du noyau sur la sortie standard :

dmesg

Par défaut, tous les utilisateurs peuvent exécuter le dmesg commande. Cependant, sur certains systèmes, l'accès à dmesg peut être restreint pour les utilisateurs non root. Dans cette situation, lors de l'appel de dmesg vous obtiendrez un message d'erreur comme ci-dessous :

dmesg: read kernel buffer failed: Operation not permitted

Le paramètre du noyau kernel.dmesg_restrict spécifie si les utilisateurs non privilégiés peuvent utiliser dmesg pour afficher les messages du tampon de journalisation du noyau. Pour supprimer les restrictions, réglez-le sur zéro :

sudo sysctl -w kernel.dmesg_restrict=0

Habituellement, la sortie contient beaucoup de lignes d'informations, donc seule la dernière partie de la sortie est visible. Pour voir une page à la fois, dirigez la sortie vers un utilitaire de téléavertisseur tel que less ou more :

dmesg --color=always | less

Le --color=always est utilisé pour préserver la sortie colorée.

Si vous souhaitez filtrer les messages du tampon, utilisez grep . Par exemple, pour afficher uniquement les messages liés à l'USB, vous devez saisir :

dmesg | grep -i usb

dmesg lit les messages générés par le noyau depuis le /proc/kmsg fichier virtuel. Ce fichier fournit une interface avec le tampon en anneau du noyau et ne peut être ouvert que par un seul processus. Si syslog processus est en cours d'exécution sur votre système et vous essayez de lire le fichier avec cat , ou less , la commande se bloquera.

Le syslog le démon vide les messages du noyau dans /var/log/dmesg , vous pouvez donc également utiliser ce fichier journal :

cat /var/log/dmesg

Formater dmesg Sortie #

Le dmesg La commande fournit un certain nombre d'options qui vous aident à formater et à filtrer la sortie.

Une des options les plus utilisées de dmesg est -H (--human ), qui active la sortie lisible par l'homme. Cette option dirige la sortie de la commande vers un pager :

dmesg -H

Pour imprimer des horodatages lisibles par l'homme, utilisez le -T (--ctime ) :

dmesg -T
[Mon Oct 14 14:38:04 2019] IPv6: ADDRCONF(NETDEV_CHANGE): wlp1s0: link becomes ready

Le format des horodatages peut également être défini à l'aide du --time-format <format> option, qui peut être ctime, reltime, delta, notime ou iso. Par exemple, pour utiliser le format delta, vous saisiriez :

dmesg --time-format=delta

Vous pouvez également combiner deux options ou plus :

dmesg -H -T

Pour regarder la sortie du dmesg commande en temps réel utilisez le -w (--follow ) :

dmesg --follow

Filtrage dmesg Sortie #

Vous pouvez restreindre le dmesg sortie vers des installations et des niveaux donnés.

La fonction représente le processus qui a créé le message. dmesg prend en charge les fonctions de journalisation suivantes :

  • kern - messages du noyau
  • user - messages au niveau de l'utilisateur
  • mail - système de messagerie
  • daemon - démons système
  • auth - messages de sécurité/d'autorisation
  • syslog - messages syslogd internes
  • lpr - sous-système d'imprimante en ligne
  • news - sous-système de nouvelles du réseau

Le -f (--facility <list> ) vous permet de limiter la sortie à des installations spécifiques. L'option accepte une ou plusieurs installations séparées par des virgules.

Par exemple, pour afficher uniquement les messages du noyau et des démons système, vous utiliseriez :

dmesg -f kern,daemon

Chaque message de journal est associé à un niveau de journal qui indique l'importance du message. dmesg prend en charge les niveaux de journalisation suivants :

  • emerg - le système est inutilisable
  • alert - des mesures doivent être prises immédiatement
  • crit - conditions critiques
  • err - conditions d'erreur
  • warn - conditions d'avertissement
  • notice - état normal mais significatif
  • info - informatif
  • debug - messages de niveau de débogage

Le -l (--level <list> ) limite la sortie à des niveaux définis. L'option accepte un ou plusieurs niveaux séparés par des virgules.

La commande suivante affiche uniquement les messages d'erreur et critiques :

dmesg -l err,crit

Effacer le tampon circulaire #

Le -C (--clear ) vous permet d'effacer le tampon circulaire :

sudo dmesg -C

Seuls root ou les utilisateurs disposant des privilèges sudo peuvent effacer le tampon.

Pour imprimer le contenu du tampon avant d'effacer, utilisez le -c (--read-clear ) :

sudo dmesg -c

Si vous souhaitez enregistrer le dmesg actuel se connecte à un fichier avant de l'effacer, redirige la sortie vers un fichier :

dmesg > dmesg_messages

Conclusion #

Le dmesg La commande vous permet d'afficher et de contrôler le tampon circulaire du noyau. Cela peut être très utile lors du dépannage de problèmes de noyau ou de matériel.

Tapez man dmesg dans votre terminal pour des informations sur tous les dmesg disponibles options.

Si vous avez des questions ou des commentaires, n'hésitez pas à laisser un commentaire.


Linux
  1. Commande Linux dmesg - Imprimer le tampon en anneau du noyau

  2. Commande Linux mv

  3. Linux du command

  4. Commande IP Linux

  5. Commande cd Linux

Commande W sous Linux

À la commande sous Linux

Commande Modprobe sous Linux

Commande Sysctl sous Linux

Commande Df sous Linux

Commande sysctl sous Linux