Het Gebruik van het dmesg Commando op een Linux

0
404
Fatmawati Achmad Zaenuri/Shutterstock

Het commando dmesg laat je peer in de verborgen wereld van de Linux opstarten van processen. Beoordelen en bewaken van de hardware-apparaat en het stuurprogramma berichten van de kernel eigen ring buffer met “de schuld van de finder vriend.”

Hoe Linux Ring Buffer Werkt

In de Linux-en Unix-achtige computers, het opstarten en het opstarten van zijn twee verschillende fasen van de opeenvolging van gebeurtenissen die plaatsvinden als de computer is ingeschakeld.

De boot processen (BIOS of UEFI, MBR, en GRUB) nemen de initialisatie van het systeem op het punt waar de kernel in het geheugen geladen en verbonden aan de initiële ramdisk (initrd of initramfs), en systemd is begonnen.

Het opstarten van processen haal dan het stokje over en voltooien van de initialisatie van het besturingssysteem. In de zeer vroege stadia van de initialisatie, inloggen daemons, zoals syslogd of rsyslogd zijn nog niet up en running. Om te voorkomen dat het verliezen van opmerkelijke foutberichten en waarschuwingen van deze fase van het initialiseren van de kernel bevat een ring buffer die het gebruikt als een bericht opslaan.

Een ring buffer is een ruimte in het geheugen gereserveerd voor berichten. Het is eenvoudig in het ontwerp, en van een vaste grootte. Wanneer het vol is, worden de nieuwe berichten overschrijven de oudste berichten. Conceptueel gezien kan worden beschouwd als een “circulaire buffer.”

De kernel ring buffer wordt informatie opgeslagen zoals de initialisatie berichten van stuurprogramma ‘ s, berichten van hardware en berichten van kernel modules. Want deze bevat deze laag niveau opstarten berichten, de ring buffer is een goede plek om een onderzoek te starten naar hardware fouten of andere problemen met het opstarten.

Maar ga niet met lege handen. Neem dmesg met u.

Het Commando dmesg

Het dmesg commando kunt u de review van de berichten die zijn opgeslagen in de ring buffer. Standaard, moet u gebruik maken van sudo gebruiken om commando dmesg.

sudo dmesg

Alle berichten in de ring buffer worden weergegeven in het terminal venster.

Dat was voor de zondvloed. Natuurlijk, wat we moeten doen is de pijp door minder:

sudo dmesg | minder

Nu kunnen we door de berichten scrollen op zoek naar punten van belang.

U kunt gebruik maken van de zoekfunctie binnen minder te vinden en markeren van items en de voorwaarden waarin u bent geïnteresseerd. De zoekfunctie te starten door op de forward slash toets “/” in minder.

GERELATEERD: Hoe te Gebruiken het minder Commando uit op een Linux

Het verwijderen van de Behoefte sudo

Als u wilt voorkomen dat sudo gebruiken elke keer dat u gebruik dan dmesg, kunt u gebruik maken van deze opdracht. Maar, let op: het kan iedereen met een gebruikersaccount op uw computer, gebruik dan dmesg zonder gebruik te maken van sudo.

sudo sysctl -w-kernel.dmesg_restrict=0

Het Forceren Van Kleur-Uitgang

Standaard dmesg zal waarschijnlijk worden geconfigureerd voor het produceren van gekleurde uitvoer. Als dit niet zo is, kunt u vertellen dmesg in te kleuren zijn uitgevoerd met behulp van de optie-L (kleur) optie.

sudo dmesg -L

Te dwingen dmesg altijd standaard een gekleurde weergave gebruik je dit commando:

sudo dmesg –color=always

De Menselijke Tijdstempels

Standaard dmesg gebruik van een tijdstempel notatie van seconden en nanoseconden aangezien de kernel gestart. Om dit weergegeven in een meer mens-vriendelijk formaat, gebruik je de-H (menselijke) optie.

sudo dmesg -H

Dit veroorzaakt twee dingen gebeuren.

  • De uitgang wordt automatisch weergegeven in het minder.
  • De tijdstempels toon een tijdstempel met de datum en de tijd, met een minuut resolutie. De berichten die zich in elk van de minuten worden gelabeld met de seconden en nanoseconden vanaf het begin van de minuut.

Leesbaar Tijdstempels

Als je geen behoefte hebt nanoseconde juistheid, maar u wilt tijdstempels die zijn gemakkelijker te lezen dan de standaard instellingen, het gebruik van de -T (leesbaar) optie. (Het is een beetje verwarrend. -H is de “menselijke” optie-T is de “leesbare” optie.)

sudo dmesg -T

De timestamps worden weergegeven als standaard data en tijden, maar de resolutie wordt verlaagd tot een minuut.

Alles wat er gebeurd binnen een enkele minuut heeft dezelfde timestamp. Als je last over de volgorde van de gebeurtenissen, dit is goed genoeg. Let ook op dat je gedumpt terug bij de opdrachtprompt. Met deze optie niet roepen automatisch minder.

Het Kijken Van Live Evenementen

Om berichten zien als ze aankomen in de kernel ring buffer, gebruik je de –volg (wacht op de berichten) optie. Die zin lijkt misschien een beetje vreemd. Als de ring buffer wordt gebruikt voor het opslaan van berichten van gebeurtenissen die plaatsvinden tijdens het opstarten, hoe kan live berichten komen in de ring buffer als de computer eenmaal is opgezet en wordt uitgevoerd?

Iets dat zorgt voor een verandering in de hardware hebt aangesloten op uw computer veroorzaken berichten worden verzonden naar de kernel ring buffer. Bijwerken of toevoegen van een kernel module, en zie je een ring buffer berichten over deze wijzigingen. Als u de stekker in een USB-station of verbinding maken of verbreken een Bluetooth-apparaat, zie je de berichten in de dmesg uitvoer. Zelfs virtuele hardware zal leiden tot nieuwe berichten worden weergegeven in de ring buffer. Brand-up van een virtuele machine, en je zult zien dat de nieuwe informatie die aankomen in de ring buffer.

sudo dmesg –volgen

Let op dat u niet terug naar de opdrachtprompt. Wanneer nieuwe berichten verschijnen ze worden weergegeven door dmesg aan de onderkant van de terminal-venster.

Zelfs de montage van een CD-ROM schijf wordt gezien als een verandering, want je hebt geënt zijn op de inhoud van de CD-ROM disk op een van de directory-structuur.

Afsluiten van de real-time feed, drukt u op Ctrl+C.

Het ophalen van de Laatste Tien Berichten

Gebruik de staart opdracht voor het ophalen van de laatste tien kernel ring buffer berichten. Natuurlijk, u kunt ophalen een aantal berichten. Tien is gewoon ons voorbeeld.

sudo dmesg | laatste -10

De laatste tien berichten worden opgehaald en weergegeven in het terminal venster.

Zoeken Naar Specifieke Termen

De pijp van de uitvoer van dmesg door grep zoeken op bepaalde tekenreeksen of patronen. Hier zijn we met de-i (hoofdlettergevoelig) optie zodat de zaak van bijpassende strings is buiten beschouwing gelaten. onze resultaten zullen zijn “usb” en “USB” en elke andere combinatie van kleine letters en hoofdletters.

sudo dmesg | grep-i usb

De gemarkeerde zoekresultaten worden in hoofdletters en kleine letters.

We kunnen isoleren van de berichten die verwijzingen bevatten naar de eerste SCSI schijf op het systeem van de sda. (Eigenlijk sda wordt ook gebruikt tegenwoordig voor de eerste SATA harde schijf en USB-sticks.)

sudo dmesg | grep-i sda

Alle berichten die vermelden sda worden opgehaald en weergegeven in het terminal venster.

Om grep zoeken naar meerdere termen tegelijk, gebruik je de-E (uit te breiden regular expression) optie. U moet de zoektermen binnen een tekenreeks tussen aanhalingstekens met pipe “|” scheidingstekens tussen de zoektermen:

sudo dmesg | grep -E “memory|tty|dma”

Elk bericht dat over een van de zoektermen, wordt vermeld in het terminal venster.

Met Behulp Van Log-Niveau

Elk bericht wordt vastgelegd in de kernel ring buffer heeft een niveau bevestigd. Het niveau vertegenwoordigt het belang van de informatie in het bericht. De niveaus zijn:

  • emerg: het Systeem is onbruikbaar.
  • waarschuwing: Actie moet worden ondernomen.
  • crit: Kritische condities.
  • fout: Fout voorwaarden.
  • waarschuwen: Waarschuwing voorwaarden.
  • merk: Normaal, maar belangrijke voorwaarde.
  • info: Informatie.
  • debug: Debug-niveau van de berichten.

We kunnen dmesg berichten ophalen die overeenkomen met een bepaald niveau met behulp van de optie-l (niveau) optie en het doorgeven van de naam van het niveau als een command-line parameter. Om te zien alleen “informatieve” niveau van de berichten, gebruik je dit commando:

sudo dmesg -l info

Alle berichten die worden vermeld zijn informatieve berichten. Ze bevatten geen fouten of waarschuwingen, maar gewoon nuttige meldingen.

Het combineren van twee of meer niveaus in een opdracht voor het ophalen van berichten van verschillende niveaus:

sudo dmesg -l debug,kennisgeving

De uitvoer van dmesg is een mix van berichten van elke log-niveau:

De Faciliteit Categorieën

De dmesg berichten zijn gegroepeerd in categorieën, de zogenaamde “faciliteiten.” De lijst van voorzieningen is:

  • kern: de Kernel boodschappen.
  • gebruiker: Gebruiker-niveau van de berichten.
  • mail: Mail systeem.
  • daemon: Systeem daemons.
  • auth: Security/autorisatie berichten.
  • syslog: Interne syslogd berichten.
  • lpr: Line printer subsysteem.
  • nieuws: Network news subsysteem.

We kunnen vragen dmesg gebruikt om te filteren zijn uitgang om alleen berichten weergeven in een specifieke faciliteit. Om dit te doen moeten we de -f (facility) optie:

sudo dmesg -f-daemon

dmesg toont alle berichten met betrekking tot de daemons die in het terminal-venster.

Als we dat deden met de niveaus, kunnen we vragen dmesg om de berichten lijst van meer dan één vestiging in een keer:

sudo dmesg -f syslog daemon

De output is een mix van syslog en daemon berichten in het logboek.

Het combineren van Faciliteit en het Niveau

De -x (decoderen) optie maakt dmesg toont de faciliteit en het niveau als de mens leesbare prefixen aan elke lijn.

sudo dmesg -x

De faciliteit en het niveau kan worden gezien aan het begin van elke regel:

De eerste gemarkeerde sectie wordt een bericht van de “kernel” faciliteit met een niveau van “het merken.” De tweede gemarkeerde sectie wordt een bericht van de “kernel” faciliteit met een niveau van “informatie.”

Dat is Geweldig, Maar Waarom?

In een notendop, het zoeken naar storingen.

Als u problemen met een stuk hardware niet herkend of niet goed gedraagt, dmesg kan wat licht werpen op het probleem.

  • Gebruik dan dmesg om te beoordelen voor het berichten van het hoogste niveau door middel van elk niveau lager, op zoek naar eventuele fouten of waarschuwingen die vermelden de hardware-item, of van invloed kunnen zijn op het probleem.
  • Gebruik dan dmesg om te zoeken naar een vermelding van de desbetreffende faciliteit om te zien of ze nuttige informatie bevatten.
  • Pijp dmesg door grep en zoek voor bijbehorende koorden of id ‘ s zoals product van de fabrikant of het model.
  • Pijp dmesg door grep en kijk voor generieke termen als “gpu” of “opslag”, of termen als “falen”, “geslaagd” of “niet”.
  • Gebruik dan de –volg optie en kijken naar dmesg-berichten in real-time.

Gelukkig jagen.

LEES VERDER

  • “Wat Doet IIRC Betekenen en Hoe Gebruik Je Het?
  • “Wat Is Markdown en Hoe Gebruik Je Het?
  • “Kan Mijn iPhone of iPad een Virus?
  • “Hoe Gebruik Je iPad als een Secundaire Beeldscherm Zonder Zijspan
  • “Wat Is een Wangiri of “One Ring” Telefoon Scam?