Android

Dmesg-kommando i Linux

7 Using dmesg to read the kernel ring buffer

7 Using dmesg to read the kernel ring buffer

Innholdsfortegnelse:

Anonim

Linux-kjernen er kjernen i operativsystemet som kontrollerer tilgangen til systemressursene, for eksempel CPU, I / O-enheter, fysisk minne og filsystemer. Kjernen skriver forskjellige meldinger til kjernen ringbuffer under oppstartprosessen, og når systemet kjører. Disse meldingene inneholder forskjellig informasjon om driften av systemet.

Kjernen-ringbufferen er en del av det fysiske minnet som inneholder kjernens loggmeldinger. Den har en fast størrelse, som betyr at når bufferen er full, blir de eldre loggpostene overskrevet.

Kommandolinjeprogrammet dmesg brukes til å skrive ut og kontrollere kjernen ringbuffer i Linux og andre Unix-lignende operativsystemer. Det er nyttig for å undersøke kjernestartere og feilsøke maskinvarerelaterte problemer.

I denne opplæringen vil vi dekke det grunnleggende i dmesg kommandoen.

Bruke dmesg kommandoen

Syntaks for kommandoen dmesg er som følger:

dmesg

Når påkalt uten alternativer skriver dmesg alle meldinger fra kjernen ringbuffer til standardutdata:

dmesg

Som standard kan alle brukere kjøre dmesg kommandoen. På noen systemer kan imidlertid tilgangen til dmesg være begrenset for brukere som ikke har rot. I denne situasjonen, når du påkaller dmesg , vil du få en feilmelding som nedenfor:

dmesg: read kernel buffer failed: Operation not permitted

Kjerneparameteren kernel.dmesg_restrict spesifiserer om upriviligerte brukere kan bruke dmesg til å vise meldinger fra kjernens loggbuffer. Hvis du vil fjerne begrensningene, setter du den til null:

sudo sysctl -w kernel.dmesg_restrict=0

Vanligvis inneholder output mange informasjonslinjer, så bare den siste delen av output er synlig. Hvis du vil se en side om gangen, må du rense utdataene til et personsøkerverktøy, for eksempel less eller more :

dmesg --color=always | less

--color=always brukes til å bevare den fargede utdata.

dmesg | grep -i usb

dmesg leser meldingene som er generert av kjernen fra /proc/kmsg virtuelle filen. Denne filen har et grensesnitt til kjernen ringbuffer og kan bare åpnes ved en prosess. Hvis syslog prosessen kjører på systemet ditt og du prøver å lese filen med cat , eller less , vil kommandoen henge.

syslog demonen dumper kjernemeldinger til /var/log/dmesg , slik at du også kan bruke den loggfilen:

cat /var/log/dmesg

Danner dmesg utgang

Kommandoen dmesg inneholder et antall alternativer som hjelper deg med å formatere og filtrere utdataene.

Et av de mest brukte alternativene til dmesg er -H ( --human ), som muliggjør menneskelig lesbar utgang. Dette alternativet fører kommandoutgangen til en personsøker:

dmesg -H

For å skrive ut menneskelige lesbare tidstempler, bruk alternativet -T (- --ctime ):

dmesg -T

IPv6: ADDRCONF(NETDEV_CHANGE): wlp1s0: link becomes ready

--time-format kan også stilles ved hjelp av - --time-format alternativet, som kan være ctime, reltime, delta, notime eller iso. For å bruke delta-formatet, skriver du for eksempel:

dmesg --time-format=delta

Du kan også kombinere to eller flere alternativer:

dmesg -H -T

For å se utdataene fra dmesg kommandoen i sanntid, bruk alternativet -w (- --follow ):

dmesg --follow

Filtrering av dmesg utgang

Du kan begrense dmesg utdata til gitte fasiliteter og nivåer.

Anlegget representerer prosessen som skapte meldingen. dmesg støtter følgende loggfasiliteter:

  • kern - kernel meldinger user - meldinger på brukernivå e- mail - postsystem daemon - system daemons autorisasjon - sikkerhets / autorisasjonsmeldinger syslog - interne syslogd meldinger lpr - linje skriver undersystem news - nettverk nyheter delsystem

The -f (- --facility ) -alternativet lar deg begrense utdataene til spesifikke fasiliteter. Alternativet godtar ett eller flere komma-separerte fasiliteter.

For å bare vise meldingene om kjernen og systemdemoner du vil bruke:

dmesg -f kern, daemon

Hver loggmelding er tilknyttet et loggenivå som viser viktigheten av meldingen. dmesg støtter følgende loggenivåer:

  • emerg - systemet er ubrukelig alert - tiltak må iverksettes med en gang crit - kritiske forhold err - feilforhold warn - varselforhold notice - normal, men betydelig tilstandsinfo - informasjonsfeil - feilsøkingsmeldinger

The -l (- --level ) alternativet begrenser utdataene til definerte nivåer. Alternativet godtar ett eller flere komma-separerte nivåer.

Følgende kommando viser bare feil og kritiske meldinger:

dmesg -l err, crit

Tømmer ringebufferen

Alternativet -C ( --clear ) lar deg tømme --clear :

sudo dmesg -C

Bare root eller brukere med sudo-rettigheter kan tømme bufferen.

For å skrive ut bufferinnholdet før du tømmer bruker du alternativet -c (- --read-clear ):

sudo dmesg -c

dmesg > dmesg_messages

Konklusjon

Kommandoen dmesg lar deg vise og kontrollere kjernen ringbuffer. Det kan være veldig nyttig når du feilsøker problemer med kjerne eller maskinvare.

Skriv man dmesg i terminalen din for informasjon om alle tilgjengelige dmesg alternativer.

dmesg kjerneterminal