Android

Dmesg-kommando i Linux

04 dmesg

04 dmesg

Innehållsförteckning:

Anonim

Linux-kärnan är kärnan i operativsystemet som styr åtkomst till systemresurserna, t.ex. CPU, I / O-enheter, fysiskt minne och filsystem. Kärnan skriver olika meddelanden till kärnringens buffert under startprocessen och när systemet körs. Dessa meddelanden innehåller olika information om drift av systemet.

Kärnringens buffert är en del av det fysiska minnet som innehåller kärnans loggmeddelanden. Den har en fast storlek, vilket betyder att när bufferten är full, skrivs de äldre loggarposterna över.

Kommandoradsverktyget dmesg används för att skriva ut och kontrollera kärnringens buffert i Linux och andra Unix-liknande operativsystem. Det är användbart för att undersöka kärnstartmeddelanden och felsöka hårdvarorelaterade problem.

I den här tutorialen täcker vi grunderna i kommandot dmesg .

Använda kommandot dmesg

Syntaxen för kommandot dmesg är följande:

dmesg

När dmesg anropas utan några alternativ skriver alla meddelanden från kärnringens buffert till standardutgången:

dmesg

Som standard kan alla användare köra kommandot dmesg . På vissa system kan dock åtkomsten till dmesg begränsas för icke-root-användare. I den här situationen dmesg du ett felmeddelande som dmesg som nedan:

dmesg: read kernel buffer failed: Operation not permitted

kernel.dmesg_restrict anger om ofrivilliga användare kan använda dmesg att se meddelanden från kärnans loggbuffert. För att ta bort begränsningarna, ställ in den till noll:

sudo sysctl -w kernel.dmesg_restrict=0

Vanligtvis innehåller utgången många informationslinjer, så att endast den sista delen av utgången är synlig. För att se en sida i taget, rör utdata till en personsökarverktyg som less eller more :

dmesg --color=always | less

--color=always för att bevara den färgade utgången.

dmesg | grep -i usb

dmesg läser meddelandena som genereras av kärnan från den virtuella filen /proc/kmsg . Denna fil tillhandahåller ett gränssnitt till kärnringens buffert och kan endast öppnas med en process. Om syslog processen körs på ditt system och du försöker läsa filen med cat , eller less , kommer kommandot att hänga.

syslog daemon dumpar kärnmeddelanden till /var/log/dmesg , så du kan också använda den loggfilen:

cat /var/log/dmesg

Formaterar dmesg utgång

Kommandot dmesg innehåller ett antal alternativ som hjälper dig att formatera och filtrera utdata.

Ett av de mest använda alternativen för dmesg är -H ( --human ), vilket möjliggör mänsklig läsbar utgång. Detta alternativ rör kommandoutputen till en personsökare:

dmesg -H

För att skriva ut mänskliga läsbara tidsstämplar använder du -T (- --ctime ):

dmesg -T

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

Tidsstämpelformatet kan också ställas in med --time-format alternativ som kan vara ctime, reltime, delta, notime eller iso. Till exempel för att använda deltaformatet skulle du skriva:

dmesg --time-format=delta

Du kan också kombinera två eller flera alternativ:

dmesg -H -T

För att se utgången från kommandot dmesg i realtid använder --follow alternativet --follow (- --follow ):

dmesg --follow

dmesg utgång

Du kan begränsa dmesg utgången till givna faciliteter och nivåer.

Anläggningen representerar processen som skapade meddelandet. dmesg stöder följande loggfaciliteter:

  • kern - kärnmeddelanden user - meddelanden på user - mail - e-postsystemdemon - systemdemoner auth - säkerhets- / auktoriseringsmeddelanden syslog - internt syslogdmeddelanden lpr - skrivare undersystem news - nätverksnyhetsundersystem

The -f ( --facility ) -alternativet låter dig begränsa utskriften till specifika anläggningar. Alternativet accepterar en eller flera kommaseparerade anläggningar.

Om du till exempel bara vill visa meddelandena om kärnan och systemdemoner som du skulle använda:

dmesg -f kern, daemon

Varje loggmeddelande är associerat med en loggnivå som visar vikten av meddelandet. dmesg stöder följande loggnivåer:

  • emerg - systemet är oanvändbar alert - åtgärder måste vidtas omedelbart crit - kritiska förhållanden err - felförhållanden warn - varningsförhållanden notice - normal men betydande villkor info - informationsfelsökning - felsökningsmeddelanden

The -l (- --level ) -alternativet begränsar utgången till definierade nivåer. Alternativet accepterar en eller flera kommaseparerade nivåer.

Följande kommando visar endast fel och kritiska meddelanden:

dmesg -l err, crit

Rensa ringbufferten

--clear -C ( --clear ) låter dig rensa ringbufferten:

sudo dmesg -C

Endast root eller användare med sudo-behörigheter kan rensa bufferten.

För att skriva ut buffertinnehållet innan du rensar använder du alternativet -c (- --read-clear ):

sudo dmesg -c

dmesg > dmesg_messages

Slutsats

dmesg kommandot dmesg kan du visa och kontrollera kärnringens buffert. Det kan vara mycket användbart vid felsökning av kärn- eller maskinvaruproblem.

Skriv man dmesg i din terminal för information om alla tillgängliga dmesg alternativ.

dmesg-kärnterminal