Table des matières
Utilisation de la commande dmesg " >Utilisation de la commande dmesg
$ dmesg > dmesg_messages" >$ dmesg > dmesg_messages
Maison Opération et maintenance exploitation et maintenance Linux Savez-vous vraiment comment déboguer les pannes du noyau Linux ? Vous serez éclairé après avoir lu cet article !

Savez-vous vraiment comment déboguer les pannes du noyau Linux ? Vous serez éclairé après avoir lu cet article !

Aug 03, 2023 pm 04:50 PM
linux linux内核


Le noyau Linux est le cœur du système d'exploitation et 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). Pendant le processus de démarrage et pendant que le système est en cours d'exécution, le noyau écrit divers messages dans le tampon en anneau du noyau. Ces messages incluent diverses informations sur les opérations du système.

Le tampon en anneau du noyau est une partie de la mémoire physique utilisée pour enregistrer les messages de journal du noyau. Sa taille est fixe, ce qui signifie qu'une fois le tampon plein, les anciens enregistrements du journal seront écrasés.

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

Dans ce tutoriel, nous aborderons les bases de la commande dmesg.

Utilisation de la commande dmesg

La syntaxe de la commande dmesg est la suivante :

dmesg [OPTIONS]
在不带任何选项的情况下调用时,dmesg将所有消息从内核环形缓冲区写入标准输出:
Copier après la connexion

$ dmesg

Par défaut, tous les utilisateurs peuvent exécuter la commande dmesg. Cependant, sur certains systèmes, l'accès à dmesg peut être restreint aux utilisateurs non root. Dans ce cas, vous recevrez un message d'erreur comme celui-ci lors de l'appel de dmesg :

dmesg : échec du tampon readkernel : opération non autorisée

Paramètre du noyau kernel.dmesg_restrictSpécifie si les utilisateurs non privilégiés peuvent utiliser dmesg pour afficher les messages du tampon du journal du noyau. Pour supprimer la limite, mettez-la à zéro :

$ sudo sysctl -w kernel.dmesg_restrict=0< / code><code style="margin: 3px;padding: 3px;font-size: 14px;border-radius: 4px;font-family: "Operator Mono", Consolas, Monaco, Menlo, monospace;word-break: break-all;color: rgb(155, 110, 35);background-color: rgb(255, 245, 227);">$ sudo sysctl -w kernel.dmesg_restrict=0

通常,输出包含很多信息行,因此只能看到输出的最后一部分。要一次查看一页,请将输出通过管道传送到分页实用程序,例如less或more:

$ dmesg --color=always | less

其中的--color=always参数用于保留彩色输出。

如果要过滤缓冲区消息,可能使用grep。例如,要仅查看与 USB 相关的消息,请键入:

$ dmesg | grep -i usb

Habituellement, la sortie contient de nombreuses lignes d'informations, donc seule la dernière partie de la sortie est visible. Pour afficher une page à la fois, dirigez la sortie vers un utilitaire de pagination tel que less ou more : 🎜🎜 $ dmesg --color=always | less🎜🎜Le paramètre --color=always est utilisé pour conserver la sortie colorée. 🎜🎜Si vous souhaitez filtrer les messages tampons, utilisez probablement grep. Par exemple, pour afficher uniquement les messages liés à l'USB, tapez : 🎜🎜$ dmesg | grep -i usb< / code>🎜<p data-tool="mdnice编辑器" style="margin-bottom: 20px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, "PingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;font-size: 16px;text-align: left;white-space: normal;text-size-adjust: auto;line-height: 1.8em;color: rgb(58, 58, 58);">dmesg 从/proc/kmsg虚拟文件中读取内核生成的消息。该文件提供了到内核环形缓冲区的接口,并且只能由一个进程打开。如果系统上正在运行syslog进程,并且你尝试使用cat或less命令读取文件,则命令将挂起。</p><p data-tool="mdnice编辑器" style="margin-bottom: 20px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, "PingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;font-size: 16px;text-align: left;white-space: normal;text-size-adjust: auto;line-height: 1.8em;color: rgb(58, 58, 58);">syslog守护程序将内核消息转储到/var/log/dmesg,因此你也可以使用该日志文件:</p><p data-tool="mdnice编辑器" style="margin-bottom: 20px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, "PingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;font-size: 16px;text-align: left;white-space: normal;text-size-adjust: auto;line-height: 1.8em;color: rgb(58, 58, 58);"><code style="margin: 3px;padding: 3px;font-size: 14px;border-radius: 4px;font-family: "Operator Mono", Consolas, Monaco, Menlo, monospace;word-break: break-all;color: rgb(155, 110, 35);background-color: rgb(255, 245, 227);">$ cat /var/log/dmesg

格式化 dmesg 输出。

dmesg命令提供了许多选项,可帮助你格式化和过滤输出。

dmesg中最常用的选项之一是-H(--human),它将输出更容易读的结果。

$ dmesg -H

要打印人类可读的时间戳,请使用-T(--ctime选项):

$ dmesg -T
[Mon Oct 14 14:38:04 2019] IPv6: ADDRCONF(NETDEV_CHANGE): wlp1s0: link becomes ready
Copier après la connexion

时间戳格式也可以使用--time-format选项设置,可以是ctime,reltime,delta,notime或iso。例如:要使用增量格式,你可以输入:

$ dmesg --time-format=delta$ dmesg --time-format=delta

你也可以组合两个或多个选项:

$ dmesg -H -T

要实时观看dmesg命令的输出,请使用-w(--follow)选项:

$ dmesg --follow

Vous pouvez également combiner deux options ou plus :

$ dmesg -H -T

Pour regarder la sortie de la commande dmesg dans en temps réel, veuillez utiliser l'option -w (--follow) : 🎜🎜$ dmesg --follow code>🎜 🎜Filtre la sortie dmesg. 🎜🎜Vous pouvez limiter la sortie de message à des installations et à des niveaux donnés. dmesg prend en charge les types suivants : 🎜<ul class="list-paddingleft-2" data-tool="mdnice编辑器" style='margin-top: 8px;margin-bottom: 8px;padding-left: 25px;caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, "PingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;font-size: 16px;text-align: left;white-space: normal;text-size-adjust: auto;'> <li><section style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;color: rgb(1, 1, 1);">kern - messages du noyau </section></li> <li><section style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;color: rgb(1, 1, 1);">user - messages au niveau de l'utilisateur </section></li> <li><section style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;color: rgb(1, 1, 1);">mail - système de messagerie </section></li> <li><section style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;color: rgb(1, 1, 1);">daemon - démon système </section></li> <li><section style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;color: rgb(1, 1, 1);">auth - messages de sécurité/autorisation </section></li> <li><section style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;color: rgb(1, 1, 1);">journal système interne syslogd messages </section></li> <li><section style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;color: rgb(1, 1, 1);">lpr - sous-système d'imprimante en ligne </section></li> <li><section style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;color: rgb(1, 1, 1);">news - sous-système d'actualités réseau </section></li> <li><section style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;color: rgb(1, 1, 1);"> -f (--facility<list>) l'option vous permet de limiter la sortie à un périphérique spécifique, cette option accepte un ou plusieurs fonctionnalités séparées par des virgules. </list></section></li> </ul> <p data-tool="mdnice编辑器" style='margin-bottom: 20px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, "PingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;font-size: 16px;text-align: left;white-space: normal;text-size-adjust: auto;line-height: 1.8em;color: rgb(58, 58, 58);'> Par exemple, pour afficher uniquement les messages du noyau et du démon système, vous pouvez utiliser : </p> <p data-tool="mdnice编辑器" style='margin-bottom: 20px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, "PingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;font-size: 16px;text-align: left;white-space: normal;text-size-adjust: auto;line-height: 1.8em;color: rgb(58, 58, 58);'><code style='margin: 3px;padding: 3px;font-size: 14px;border-radius: 4px;font-family: "Operator Mono", Consolas, Monaco, Menlo, monospace;word-break: break-all;color: rgb(155, 110, 35);background-color: rgb(255, 245, 227);'>$ dmesg -f kern,daemon

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

  • emerg - Le système est indisponible
  • alert - Une action doit être prise immédiatement
  • crit - Situation d'urgence
  • err - Condition d'erreur
  • warn - Condition d'avertissement
  • pas de glace - conditions normales mais importantes
  • info - informationnel
  • debug - message de niveau de débogage

L'option -l (--level <list>) vous permet de limiter la sortie à un niveau défini. L'option accepte un ou plusieurs niveaux séparés par des virgules. La commande suivante affiche uniquement les messages d'erreur et critiques : -l(--level <list>)选项允许你将输出限制为定义的级别,该选项接受一个或多个逗号分隔的级别。以下命令仅显示错误和严重消息:

$ dmesg -l err,crit

清除环形缓冲区

-C(--clear)选项可让您清除环形缓冲区:

$ sudo dmesg -C

$ dmesg -l err,crit

Effacer le tampon en anneau 🎜🎜 L'option -C (--clear) vous permet d'effacer le tampon en anneau : 🎜🎜 $ sudo dmesg -C🎜🎜Seul root ou un utilisateur disposant des privilèges sudo peut vider le tampon. 🎜

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

$ sudo dmesg -c$ sudo dmesg -c

如果要在清除文件之前将当前dmesg日志保存到文件中,你可以将输出重定向到文件:

$ dmesg > dmesg_messages

Si vous souhaitez enregistrer le journal dmesg actuel dans un fichier avant de l'effacer, vous pouvez rediriger la sortie vers le fichier :

$ dmesg > dmesg_messages

Conclusion

La commande dmesg vous permet d'afficher et de contrôler le tampon en anneau du noyau. Ceci est utile lors du dépannage de problèmes de noyau ou de matériel.
🎜 Tapez man dmesg dans le terminal et vous pourrez obtenir des informations sur toutes les options dmesg disponibles. 🎜🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment vérifier si Nginx est démarré Comment vérifier si Nginx est démarré Apr 14, 2025 pm 01:03 PM

Comment confirmer si Nginx est démarré: 1. Utilisez la ligne de commande: SystemCTl Status Nginx (Linux / Unix), netStat -ano | Findstr 80 (Windows); 2. Vérifiez si le port 80 est ouvert; 3. Vérifiez le message de démarrage NGINX dans le journal système; 4. Utilisez des outils tiers, tels que Nagios, Zabbix et Icinga.

Comment résoudre l'erreur Nginx403 Comment résoudre l'erreur Nginx403 Apr 14, 2025 pm 12:54 PM

Le serveur n'a pas l'autorisation d'accéder à la ressource demandée, ce qui donne une erreur NGINX 403. Les solutions incluent: vérifier les autorisations de fichiers. Vérifiez la configuration .htaccess. Vérifiez la configuration de Nginx. Configurez les autorisations Selinux. Vérifiez les règles du pare-feu. Dépanner d'autres causes telles que les problèmes de navigateur, les défaillances du serveur ou d'autres erreurs possibles.

Différence entre Centos et Ubuntu Différence entre Centos et Ubuntu Apr 14, 2025 pm 09:09 PM

Les principales différences entre Centos et Ubuntu sont: l'origine (Centos provient de Red Hat, pour les entreprises; Ubuntu provient de Debian, pour les particuliers), la gestion des packages (Centos utilise Yum, se concentrant sur la stabilité; Ubuntu utilise APT, pour une fréquence de mise à jour élevée), le cycle de support (CentOS fournit 10 ans de soutien, Ubuntu fournit un large soutien de LT tutoriels et documents), utilisations (Centos est biaisé vers les serveurs, Ubuntu convient aux serveurs et aux ordinateurs de bureau), d'autres différences incluent la simplicité de l'installation (Centos est mince)

Explication détaillée du principe docker Explication détaillée du principe docker Apr 14, 2025 pm 11:57 PM

Docker utilise les fonctionnalités du noyau Linux pour fournir un environnement de fonctionnement d'application efficace et isolé. Son principe de travail est le suivant: 1. Le miroir est utilisé comme modèle en lecture seule, qui contient tout ce dont vous avez besoin pour exécuter l'application; 2. Le Système de fichiers Union (UnionFS) empile plusieurs systèmes de fichiers, ne stockant que les différences, l'économie d'espace et l'accélération; 3. Le démon gère les miroirs et les conteneurs, et le client les utilise pour l'interaction; 4. Les espaces de noms et les CGROUP implémentent l'isolement des conteneurs et les limitations de ressources; 5. Modes de réseau multiples prennent en charge l'interconnexion du conteneur. Ce n'est qu'en comprenant ces concepts principaux que vous pouvez mieux utiliser Docker.

Centos arrête la maintenance 2024 Centos arrête la maintenance 2024 Apr 14, 2025 pm 08:39 PM

Centos sera fermé en 2024 parce que sa distribution en amont, Rhel 8, a été fermée. Cette fermeture affectera le système CentOS 8, l'empêchant de continuer à recevoir des mises à jour. Les utilisateurs doivent planifier la migration et les options recommandées incluent CentOS Stream, Almalinux et Rocky Linux pour garder le système en sécurité et stable.

Comment démarrer Nginx Comment démarrer Nginx Apr 14, 2025 pm 01:06 PM

Question: Comment démarrer Nginx? Réponse: Installez la vérification Nginx Nginx Nginx nginx est Nginx à démarrer Explorer d'autres options de démarrage Démarrer automatiquement Nginx

Comment installer CentOS Comment installer CentOS Apr 14, 2025 pm 09:03 PM

Étapes d'installation de CentOS: Téléchargez l'image ISO et Burn Bootable Media; démarrer et sélectionner la source d'installation; sélectionnez la langue et la disposition du clavier; configurer le réseau; partitionner le disque dur; définir l'horloge système; créer l'utilisateur racine; sélectionnez le progiciel; démarrer l'installation; Redémarrez et démarrez à partir du disque dur une fois l'installation terminée.

Comment utiliser Docker Desktop Comment utiliser Docker Desktop Apr 15, 2025 am 11:45 AM

Comment utiliser Docker Desktop? Docker Desktop est un outil pour exécuter des conteneurs Docker sur les machines locales. Les étapes à utiliser incluent: 1. Installer Docker Desktop; 2. Démarrer Docker Desktop; 3. Créer une image Docker (à l'aide de DockerFile); 4. Build Docker Image (en utilisant Docker Build); 5. Exécuter Docker Container (à l'aide de Docker Run).

See all articles