Slik bruker du dmesg-kommandoen på Linux

En stilisert terminalmelding på en bærbar Linux-bærbar.

Fatmawati Achmad Zaenuri/Shutterstock



Den |_+_| kommando lar deg kikke inn i den skjulte verdenen til Linux-oppstartsprosessene. Se gjennom og overvåk meldinger om maskinvareenhet og drivere fra kjernens egen ringbuffer med feilsøkerens venn.

Hvordan Linuxs ringbuffer fungerer

I Linux- og Unix-lignende datamaskiner er oppstart og oppstart to forskjellige faser av hendelsesforløpet som finner sted når datamaskinen slås på.





De oppstartsprosesser ( BIOS eller UEFA , MBR , og GRUB ) ta initialiseringen av systemet til det punktet hvor kjernen er lastet inn i minnet og koblet til den opprinnelige ramdisken ( initrd eller initramfs ), og system er startet.

De oppstartsprosesser ta deretter opp stafettpinnen og fullfør initialiseringen av operativsystemet. I de aller tidligste stadiene av initialisering, loggedemoner som f.eks syslogd eller rsyslogd er ennå ikke oppe og går. For å unngå å miste bemerkelsesverdige feilmeldinger og advarsler fra denne fasen av initialiseringen, inneholder kjernen en ringbuffer som den bruker som meldingslager.



En ringebuffer er et minne som er reservert for meldinger. Den er enkel i design, og av fast størrelse. Når den er full, overskriver nyere meldinger de eldste meldingene. Konseptuelt kan det betraktes som en sirkulær buffer .

Annonse

Kjerneringbufferen lagrer informasjon som initialiseringsmeldinger til enhetsdrivere, meldinger fra maskinvare og meldinger fra kjernemoduler. Fordi den inneholder disse oppstartsmeldingene på lavt nivå, er ringebufferen et godt sted å starte en undersøkelse av maskinvarefeil eller andre oppstartsproblemer.

Men ikke gå tomhendt. Ta |_+_| med deg.



dmesg-kommandoen

Den |_+_| kommandoen lar deg for å se på meldingene som er lagret i ringebufferen . Som standard må du bruke |_+_| å bruke |_+_|.

dmesg

Alle meldingene i ringebufferen vises i terminalvinduet.

Det var en syndflod. Det er klart vi må gjøre rør det gjennom |_+_|:

dmesg

Nå kan vi bla gjennom meldingene på jakt etter gjenstander av interesse.

Du kan bruke søkefunksjonen i |_+_| for å finne og markere elementer og termer du er interessert i. Start søkefunksjonen ved å trykke skråstrektasten / i |_+_|.

I SLEKT: Hvordan bruke den mindre kommandoen på Linux

Fjerner behovet for sudo

Hvis du vil unngå å måtte bruke |_+_| hver gang du bruker |_+_|, kan du bruke denne kommandoen. Men vær oppmerksom på: den lar alle med en brukerkonto datamaskinen din bruke |_+_| uten å måtte bruke |_+_|.

dmesg

Forsering av fargeutgang

Som standard er |_+_| vil sannsynligvis bli konfigurert til å produsere farget utdata. Hvis det ikke er det, kan du fortelle |_+_| for å fargelegge utdataene ved å bruke |_+_| (farge) alternativ.

sudo

For å tvinge |_+_| for alltid å bruke en farget skjerm som standard, bruk denne kommandoen:

dmesg

Menneskelige tidsstempler

Som standard er |_+_| bruk en tidsstempelnotasjon på sekunder og nanosekunder siden kjernen startet. For å få dette gjengitt i et mer menneskevennlig format, bruk |_+_| (menneskelig) alternativ.

less

Dette fører til at to ting skjer.

  • Utgangen vises automatisk i |_+_|.
  • Tidsstemplene viser et tidsstempel med dato og klokkeslett, med minuttoppløsning. Meldingene som oppsto i hvert minutt er merket med sekunder og nanosekunder fra begynnelsen av det minuttet.

Lesbare tidsstempler for mennesker

Hvis du ikke krever nanosekunders nøyaktighet, men du vil ha tidsstempler som er lettere å lese enn standardinnstillingene, bruk |_+_| (lesbare mennesker) alternativ. (Det er litt forvirrende. |_+_| er det menneskelige alternativet, |_+_| er det lesbare alternativet for mennesker.)

less

Tidsstemplene er gjengitt som standard datoer og klokkeslett, men oppløsningen senkes til ett minutt.

Annonse

Alt som skjedde i løpet av et enkelt minutt har samme tidsstempel. Hvis alt du bryr deg om er hendelsesforløpet, er dette bra nok. Vær også oppmerksom på at du blir dumpet tilbake ved ledeteksten. Dette alternativet påkaller ikke automatisk |_+_|.

Ser på livebegivenheter

For å se meldinger når de kommer inn i kjerneringbufferen, bruk |_+_| (vent på meldinger) alternativ. Den setningen kan virke litt merkelig. Hvis ringebufferen brukes til å lagre meldinger fra hendelser som finner sted under oppstartssekvensen, hvordan kan direktemeldinger ankomme i ringebufferen når datamaskinen er oppe og går?

Alt som forårsaker en endring i maskinvaren koblet til datamaskinen din, vil føre til at meldinger sendes til kjerneringbufferen. Oppdater eller legg til en kjernemodul, og du vil se ringebuffermeldinger om disse endringene. Hvis du kobler til en USB-stasjon eller kobler til eller fra en Bluetooth-enhet, vil du se meldinger i |_+_| produksjon. Selv virtuell maskinvare vil føre til at nye meldinger vises i ringebufferen. Start en virtuell maskin, og du vil se ny informasjon som kommer inn i ringbufferen.

less

Merk at du ikke kommer tilbake til ledeteksten. Når nye meldinger vises, vises de med |_+_| nederst i terminalvinduet.

Utdata fra sudo dmesg --følg i et terminalvindu

Selv montering av en CD-ROM-disk blir sett på som en endring, fordi du har podet innholdet på CD-ROM-disken inn i katalogtreet.

dmesg ring buffer meldinger som et resultat av montering av en CD-ROM disk

For å gå ut av sanntidsfeeden, trykk |_+_|.

Hent de ti siste meldingene

Bruk halekommandoen for å hente de ti siste kjerneringbuffermeldinger. Selvfølgelig kan du hente et hvilket som helst antall meldinger. Ti er bare vårt eksempel.

sudo

Annonse

De siste ti meldingene hentes og listes opp i terminalvinduet.

Søker etter spesifikke vilkår

Pipe utgangen fra |_+_| gjennom |_+_| for å søke etter bestemte strenger eller mønstre . Her bruker vi |_+_| (ignorer store og små bokstaver), slik at tilfellet med samsvarende strenger ses bort fra. resultatene våre vil inkludere usb og USB og enhver annen kombinasjon av små og store bokstaver.

dmesg

De uthevede søkeresultatene er med store og små bokstaver.

Vi kan isolere meldingene som inneholder referanser til den første SCSI harddisk på systemet |_+_|. (Faktisk brukes |_+_| også i dag for den første SATA-harddisken , og for USB-stasjoner.)

dmesg

Alle meldingene som nevner |_+_| hentes og vises i terminalvinduet.

For å lage |_+_| søk etter flere termer samtidig, bruk |_+_| (utvid regulært uttrykk) alternativ. Du må oppgi søkeordene i en sitert streng med pipe | skilletegn mellom søkeordene:

sudo

Enhver melding som nevner noen av søkeordene er oppført i terminalvinduet.

Bruke loggnivåer

Hver melding som er logget til kjerneringbufferen har et nivå knyttet til seg. Nivået representerer viktigheten av informasjonen i meldingen. Nivåene er:

    emer: Systemet er ubrukelig. varsling: Handling må iverksettes umiddelbart. crit: Kritiske forhold. feil: Feilforhold. varsle: Advarselsforhold. legge merke til: Normal, men betydelig tilstand. info: Informasjon. feilsøke: Meldinger på feilsøkingsnivå.
Annonse

Vi kan lage |_+_| trekke ut meldinger som samsvarer med et bestemt nivå ved å bruke |_+_| (nivå) og sende navnet på nivået som en kommandolinjeparameter. For å kun se meldinger på informasjonsnivå, bruk denne kommandoen:

dmesg

Alle meldingene som er oppført er informasjonsmeldinger. De inneholder ikke feil eller advarsler, bare nyttige varsler.

Kombiner to eller flere loggnivåer i én kommando for å hente meldinger med flere loggnivåer:

dmesg

Utgangen fra |_+_| er en blanding av meldinger for hvert loggnivå:

Fasilitetskategoriene

Den |_+_| meldinger er gruppert i kategorier kalt fasiliteter. Listen over fasiliteter er:

    kjerne: Kjernemeldinger. bruker: Meldinger på brukernivå. post: E-postsystem. demon: Systemdemoner. auth: Sikkerhets-/autorisasjonsmeldinger. syslog: Interne syslogd-meldinger. lpr: Linjeskriver undersystem. nyheter: Undersystem for nettverksnyheter.
Annonse

Vi kan spørre |_+_| for å filtrere utdataene slik at de bare viser meldinger i et bestemt anlegg. For å gjøre det må vi bruke |_+_| (anlegg) alternativ:

-L

|_+_| viser alle meldingene relatert til demoner i terminalvinduet.

Som vi gjorde med nivåene, kan vi spørre |_+_| for å liste meldinger fra mer enn ett anlegg samtidig:

dmesg

Utdataene er en blanding av syslog- og daemon-loggmeldinger.

Kombinerer anlegg og nivå

Den |_+_| (dekode) alternativet gjør |_+_| vis anlegget og nivået som menneskelesbare prefikser til hver linje.

dmesg

Anlegget og nivået kan sees i starten av hver linje:

Annonse

Den første uthevede delen er en melding fra kjerneanlegget med et varselnivå. Den andre uthevede delen er en melding fra kjerneanlegget med informasjonsnivå.

Det er flott, men hvorfor?

I et nøtteskall, feilsøking.

Hvis du har problemer med at en maskinvare ikke gjenkjennes eller ikke oppfører seg riktig, |_+_| kan kaste lys over problemet.

  • Bruk |_+_| å gjennomgå meldinger fra de høyeste nivå ned gjennom hvert lavere nivå, på jakt etter eventuelle feil eller advarsler som nevner maskinvareelementet, eller som kan ha betydning for problemet.
  • Bruk |_+_| for å søke etter omtale av passende anlegget for å se om de inneholder nyttig informasjon.
  • Rør |_+_| gjennom |_+_| og se etter relaterte strenger eller identifikatorer som produktprodusent eller modellnummer.
  • Rør |_+_| gjennom |_+_| og se etter generiske termer som gpu eller lagring, eller termer som feil, mislyktes eller ikke kan.
  • Bruk |_+_| alternativ og se |_+_| meldinger i sanntid.

God jakt.

Linux-kommandoer
Filer tjære · pv · katt · tac · chmod · grep · diff · sed · Med · Mann · pushd · popd · fsck · testdisk · seq · fd · pandoc · CD · $PATH · awk · bli med · jq · brette · unik · journalctl · hale · stat · ls · fstab · kastet ut · mindre · chgrp · chown · rev · se · strenger · type · endre navn · glidelås · pakke opp · montere · umount · installere · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · fra · ln · lapp · konvertere · rclone · makulere · SRM
Prosesser alias · skjerm · topp · hyggelig · renice · framgang · strace · system · tmux · chsh · historie · · parti · gratis · hvilken · dmesg · brukermod · ps · chroot · xargs · tty · rosa · lsof · vmstat · pause · vegg · ja · drepe · søvn · sudo · hans · tid · gruppeadd · brukermod · grupper · lshw · skru av · starte på nytt · Stoppe · strøm av · passwd · lscpu · crontab · Dato · bg · fg
Nettverk netstat · ping · traceroute · ip · ss · hvem er · fail2ban · bmon · du · finger · nmap · ftp · krølle · wget · hvem · hvem er jeg · I · iptables · ssh-keygen · ufw

I SLEKT: Beste Linux bærbare datamaskiner for utviklere og entusiaster

LES NESTE Profilbilde for Dave McKay Dave McKay
Dave McKay brukte først datamaskiner da stanset papirtape var på moten, og han har programmert siden. Etter over 30 år i IT-bransjen er han nå teknologijournalist på heltid. I løpet av sin karriere har han jobbet som frilansprogrammerer, leder for et internasjonalt programvareutviklingsteam, prosjektleder for IT-tjenester og sist som databeskyttelsesansvarlig. Hans forfatterskap har blitt publisert av howtogeek.com, cloudsavvyit.com, itenterpriser.com og opensource.com. Dave er en Linux-evangelist og forkjemper for åpen kildekode.
Les hele bio

Interessante Artikler