Android

Dmesg-kommando i linux

Linux Kommandozeile für Anfänger - Teil 4 - Logs, man & Aliase

Linux Kommandozeile für Anfänger - Teil 4 - Logs, man & Aliase

Indholdsfortegnelse:

Anonim

Linux-kernen er kernen i operativsystemet, der kontrollerer adgangen til systemressourcerne, såsom CPU, I / O-enheder, fysisk hukommelse og filsystemer. Kernen skriver forskellige meddelelser til kernelringbufferen under startprocessen, og når systemet kører. Disse meddelelser inkluderer forskellige oplysninger om driften af ​​systemet.

Kernen ringbuffer er en del af den fysiske hukommelse, der indeholder kernens logmeddelelser. Det har en fast størrelse, hvilket betyder, at når bufferen er fuld, overskrives de ældre logfiler.

Kommandolinjeprogrammet dmesg bruges til at udskrive og kontrollere kernen ringbuffer i Linux og andre Unix-lignende operativsystemer. Det er nyttigt til at undersøge kernel-boot-meddelelser og fejlfinding af hardware-relaterede problemer.

I denne tutorial vil vi dække det grundlæggende i kommandoen dmesg .

Brug af dmesg kommandoen

Syntaks for kommandoen dmesg er som følger:

dmesg

Når påkaldt uden valgmuligheder skriver dmesg alle meddelelser fra kernelringbufferen til standardoutput:

dmesg

Som standard kan alle brugere køre dmesg kommandoen. På nogle systemer kan adgangen til dmesg være begrænset for ikke-root-brugere. I denne situation, når du påberåber dmesg , får du en fejlmeddelelse som nedenfor:

dmesg: read kernel buffer failed: Operation not permitted

kernel.dmesg_restrict specificerer, om upriviligerede brugere kan bruge dmesg til at se meddelelser fra kernens logbuffer. For at fjerne begrænsningerne skal du indstille den til nul:

sudo sysctl -w kernel.dmesg_restrict=0

Normalt indeholder output mange informationslinjer, så kun den sidste del af output er synlig. Hvis du vil se en side ad gangen, skal du rør output til en personsøgerværktøj, såsom less eller more :

dmesg --color=always | less

- --color=always til at bevare det farvede output.

dmesg | grep -i usb

dmesg læser de meddelelser, der er genereret af kernen fra den virtuelle fil /proc/kmsg . Denne fil giver en grænseflade til kernelringbufferen og kan kun åbnes ved en proces. Hvis syslog processen kører på dit system, og du prøver at læse filen med cat , eller less , hænger kommandoen.

syslog dæmonen dumper kernemeddelelser til /var/log/dmesg , så du kan også bruge denne logfil

cat /var/log/dmesg

Dannelse af dmesg output

Kommandoen dmesg indeholder et antal indstillinger, der hjælper dig med at formatere og filtrere output.

En af de mest anvendte indstillinger for dmesg er -H ( --human ), som muliggør den menneskelige læsbare output. Denne mulighed rør kommandoudgangen til en personsøger:

dmesg -H

For at udskrive menneskelige læsbare tidsstempler skal du bruge indstillingen -T (- --ctime ):

dmesg -T

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

Tidsstempelformatet kan også indstilles ved hjælp af --time-format mulighed, som kan være ctime, reltime, delta, notime eller iso. For eksempel at bruge deltaformatet, du skriver:

dmesg --time-format=delta

Du kan også kombinere to eller flere indstillinger:

dmesg -H -T

For at se output fra kommandoen dmesg i realtid skal du bruge indstillingen -w (- --follow ):

dmesg --follow

Filtrering af dmesg output

Du kan begrænse dmesg output til givne faciliteter og niveauer.

Faciliteten repræsenterer processen, der oprettede beskeden. dmesg understøtter følgende logfaciliteter:

  • kern - kernel meddelelser user - meddelelser på user mail - postsystem daemon - system daemons auth - sikkerheds / autorisationsmeddelelser syslog - interne syslogd meddelelser lpr - printer printer undersystem news - netværk nyheder undersystem

The -f ( --facility ) valgmulighed giver dig mulighed for at begrænse output til specifikke faciliteter. Indstillingen accepterer en eller flere komma-adskilte faciliteter.

For eksempel for kun at vise de meddelelser om kerne- og systemdemoner, du vil bruge:

dmesg -f kern, daemon

Hver logmeddelelse er knyttet til et logniveau, der viser vigtigheden af ​​meddelelsen. dmesg understøtter følgende logniveauer:

  • emerg - systemet er ubrugelig alert - handling skal straks træffes crit - kritiske forhold err - emerg warn - advarselsbetingelser - normal, men betydelig tilstandsinfo - informativ debug - meddelelser om fejlfinding på niveau

The -l (- --level ) option begrænser output til definerede niveauer. Indstillingen accepterer et eller flere komma-adskilte niveauer.

Følgende kommando viser kun fejlen og kritiske meddelelser:

dmesg -l err, crit

Rydning af ringbufferen

Indstillingen -C ( --clear ) giver dig mulighed for at rydde --clear :

sudo dmesg -C

Kun root eller brugere med sudo-privilegier kan rydde bufferen.

Hvis du vil udskrive --read-clear før du rydder, skal du bruge indstillingen -c (- --read-clear ):

sudo dmesg -c

dmesg > dmesg_messages

Konklusion

Kommandoen dmesg giver dig mulighed for at se og kontrollere kernen ringbuffer. Det kan være meget nyttigt ved fejlfinding af kerne- eller hardwareproblemer.

Skriv man dmesg i din terminal for at få oplysninger om alle tilgængelige dmesg indstillinger.

dmesg kerneterminal