Hur att Använda Kommandot dmesg på Linux

0
97
Fatmawati Achmad Zaenuri/Shutterstock

Dmesg kommandot kan du kika in i den dolda världen av Linux startar processer. Granska och övervaka maskinvaruenhet och drivrutin meddelanden från kärnan egen ring buffert med “fel finder’ s vän.”

Hur Linux Ring Buffer Fungerar

På Linux-och Unix-liknande datorer, uppstart och start är två skilda faser av den sekvens av händelser som sker när datorn är påslagen.

Boot processer (BIOS eller UEFI, MBR, och GRUB) ta initiering av systemet till den punkt där kärnan har laddats in i minnet och som är ansluten till den initiala ramdisken (initrd-eller initramfs), och systemd är igång.

Den startar processer för att sedan plocka upp stafettpinnen och fullständig initiering av operativsystemet. I de mycket tidiga stadierna av initiering, loggning demoner som syslogd eller rsyslogd är ännu inte igång. För att undvika att förlora betydande felmeddelanden och varningar från denna fas av initiering, kärnan innehåller en ring buffert som använder det som ett meddelande butik.

En ring buffert är ett minne utrymme för meddelanden. Det är enkel i sin design, och med en fast storlek. När det är fullt, nyare meddelanden skriva över de äldsta meddelandena. Begreppsmässigt kan det vara tänkt som en “cirkulär buffert.”

Kärnan ring bufferten lagrar information såsom initiering meddelanden av drivrutiner, meddelanden från hårdvara, och meddelanden från moduler till kärnan. Eftersom det innehåller dessa låg nivå start meddelanden, ring buffert är ett bra ställe att börja en undersökning av hårdvara fel eller andra frågor start.

Men behöver inte gå tomhänt. Ta dmesg med dig.

Kommandot dmesg

Dmesg kommandot tillåter dig att granska meddelanden som är lagrade i ringen buffert. Som standard behöver du använda sudo för att använda dmesg.

sudo dmesg

Alla meddelanden i ringen buffert visas i terminalfönstret.

Det var en störtflod. Självklart, vad vi behöver göra är att röret det genom mindre:

sudo dmesg | mindre

Nu kan vi bläddra igenom de meddelanden som söker efter objekt av intresse.

Du kan använda sökfunktionen inom mindre att leta reda på och markera ett objekt och termer som du är intresserad av. Starta sökfunktionen genom att trycka på framåt snedstreck knappen “/” i mindre.

RELATERAT: Hur man Använder mindre Kommando på Linux

Ta bort Behovet för sudo

Om du vill undvika att behöva använda sudo varje gång du använder dmesg, kan du använda detta kommando. Men, var medveten om: det låter vem som helst med ett användarkonto på din dator för att använda dmesg utan att använda sudo.

sudo sysctl -w-kärnan.dmesg_restrict=0

Tvingar Färg

Som standard, dmesg kommer förmodligen vara konfigurerad för att producera färgade utgång. Om den inte är det, kan du berätta för dmesg för att färglägga sina utgång med -L (färg) alternativ.

sudo dmesg -L

För att tvinga dmesg för att alltid som standard att visa färglagd använda detta kommando:

sudo dmesg –color=alltid

Mänskliga Tidsstämplar

Som standard, dmesg använda en tidsstämpel notation av sekunder och nanosekunder sedan kärnan igång. Att ha detta renderade i en mer mänsklig-format kan du använda växeln-H (human) alternativ.

sudo dmesg -H

Detta medför två saker att hända.

  • Utdata visas automatiskt i mindre.
  • Tidsstämplar visa en tidsstämpel med datum och tid med en minuts upplösning. De meddelanden som inträffat i varje minut är märkta med sekunder och nanosekunder från början av minut.

Läsbar Tidsstämplar

Om du inte behöver nanosekund noggrannhet, men du vill tidsstämplar som är lättare att läsa än standard, använd-T (human readable) alternativ. (Det är lite förvirrande. -H är den “mänskliga” alternativet, -T är den “läsbar” – alternativet.)

sudo dmesg -T

Tidsstämplar visas som standard datum och tider, men upplösningen är sänkt till en minut.

Allt som hände inom en enda minut har samma tidsstämpel. Om allt du är störd om är sekvensen av händelser, detta är tillräckligt bra. Också, observera att du dumpade tillbaka vid kommandotolken. Detta alternativ behöver inte automatiskt åberopa mindre.

Titta På Live Evenemang

För att se meddelanden när de anländer i kärnan ring buffert, använd –följ (vänta meddelanden) alternativ. Den meningen kan tyckas lite konstigt. Om ringen buffert används för att lagra meddelanden från händelser som äger rum under startsekvensen, hur kan leva meddelanden kommer in i ringen buffert när datorn är igång?

Allt som orsakar en förändring i den maskinvara som är ansluten till din dator kommer att orsaka meddelanden skickas till kärnan ring buffert. Uppdatera eller lägga till en av kärnans moduler, och du kommer att se ring buffert meddelanden om dessa förändringar. Om du ansluter en USB-enhet eller ansluta eller koppla från en Bluetooth-enhet, ska du se meddelanden i dmesg utgång. Även virtuell hårdvara kommer att orsaka nya meddelanden ska visas i ringen buffert. Brand upp en virtuell maskin, och du kommer att se ny information som anländer i ringen buffert.

sudo dmesg –följ

Observera att du inte tillbaka till kommandotolken. När nya meddelanden visas de visas av dmesg på botten av terminal-fönstret.

Även montera en CD-ROM-skiva ses som en förändring, eftersom du har inympat innehållet på CD-ROM-skiva på katalogträdet.

För att lämna real-time-flöde, tryck på Ctrl+C.

Hämta de Senaste Tio Meddelanden

Använd kommandot tail för att hämta de senaste tio kärnan ring buffert meddelanden. Naturligtvis kan du hämta valfritt antal meddelanden. Tio är bara vårt exempel.

sudo dmesg | senast -10

De senaste tio meddelanden som ska hämtas och anges i terminal fönstret.

Söka Efter Specifika Termer

Rör produktionen från dmesg genom grep för att söka på vissa strängar eller mönster. Här ska vi använda den -jag (ignore case) alternativ så att fallet med matchande strängar inte beaktas. våra resultat kommer att innehålla en “usb” och “USB” och någon annan kombination av gemener och versaler.

sudo dmesg | grep -i usb

Den markerade sökresultat är i versaler och gemener.

Vi kan isolera de meddelanden som innehåller referenser till den första SCSI-hårddisken på datorn sda. (Faktiskt, sda används också idag för första SATA-hårddisk och USB-enheter.)

sudo dmesg | grep-i sda

Alla meddelanden som nämner sda hämtas och anges i terminal fönstret.

För att göra grep söka efter flera ord på en gång, använd-E (förlänga reguljära uttryck) alternativ. Du måste ange söktermer inne i en sträng, med röret “|” avgränsare mellan söktermer:

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

Något meddelande som talar något av de sökord som anges i terminal fönstret.

Med Hjälp Av Loggen Nivåer

Varje meddelande inloggad för att kärnan ring buffert har en nivå som är knutna till det. Nivån representerar vikten av information i meddelandet. Nivåerna är:

  • emerg: Systemet är oanvändbar.
  • varning: Åtgärder måste vidtas omedelbart.
  • kritisk träff: Kritiska förhållanden.
  • err: Fel villkor.
  • varna: Varning villkor.
  • meddelande: Normal, men betydande skick.
  • info: Informationsbroschyr.
  • debug: Debug-nivå meddelanden.

Vi kan göra dmesg extrahera meddelanden som matchar en viss nivå genom att använda -l (nivå) och passerar namnet på den nivå som ett kommando parameter. Att bara se “information” nivå meddelanden, använd detta kommando:

sudo dmesg -l info

Alla meddelanden som visas är informativa meddelanden. De inte innehåller fel eller varningar, bara användbara anmälningar.

Kombinera två eller flera logga nivåer i ett kommando för att hämta meddelanden på flera nivåer loggen:

sudo dmesg -l felsöka meddelande

Utdatat från dmesg är en blandning av meddelanden av varje stock nivå:

Anläggningen Kategorier

Dmesg meddelanden är grupperade i olika kategorier som kallas “facilities.” Listan över faciliteter är:

  • kern: Kernel-meddelanden.
  • användare: Användare-nivå meddelanden.
  • e-post: Mail-system.
  • daemon: demoner System.
  • auth: Säkerhet/tillstånd meddelanden.
  • syslog: Inre syslogd meddelanden.
  • lpr: Line printer subsystem.
  • nyheter: Network subsystem.

Vi kan be dmesg för att filtrera sin produktion för att endast visa meddelanden i en viss anläggning. För att göra det måste vi använda växeln-f (anläggning) alternativ:

sudo dmesg -f-demon

dmesg listar alla meddelanden om demoner i terminalfönstret.

Som vi gjorde med nivåer, kan vi be dmesg för att lista meddelanden från mer än en anläggning på en gång:

sudo dmesg -f syslog-demon

Resultatet är en mix av syslog-och demon logga in meddelanden.

Kombinera Anläggning och Nivå

-X (decode) alternativet gör dmesg visa nivå och som är läsbara för prefix för varje linje.

sudo dmesg -x

Anläggningen och kan ses i början av varje rad:

Den första markerade avsnittet är ett meddelande från “kärnan” – anläggning med en nivå av “meddelande.” Den andra markerade avsnittet är ett meddelande från “kärnan” – anläggning med en nivå av “info.”

Det är Bra, Men Varför?

I ett nötskal, mästrande.

Om du har problem med en hårdvara som inte är erkända eller inte beter sig på rätt sätt, dmesg kan kasta lite ljus över frågan.

  • Använd dmesg för att granska meddelanden från högsta nivå ner genom varje lägre nivå, letar för några fel eller varningar som nämner hårdvara artikel, eller kan ha betydelse för frågan.
  • Använd dmesg för att söka efter någon nämner den lämplig anläggning för att se om de innehåller någon användbar information.
  • Rör dmesg genom grep och leta efter relaterade strängar eller kännetecken såsom produktens tillverkare eller modell nummer.
  • Rör dmesg genom grep och titta för generiska termer som “gpu” eller “storage”, eller termer som “fel”, “det gick inte” eller “det går inte”.
  • Använd –följ alternativet och se dmesg meddelanden i realtid.

Lycklig jakt.

LÄS NÄSTA

  • “Vad Gör jag minns Menar, och Hur Använder Man Det?
  • “Vad Är Wiki och Hur Använder Man Det?
  • “Kan Min iPhone eller iPad för att Få ett Virus?
  • “Hur du Använder Din iPad som en Sekundär Mac-Skärmen Utan Sidvagn
  • “Vad Är en Wangiri eller “En Ring” Telefonen Bluff?