7 Using dmesg to read the kernel ring buffer
Inhoudsopgave:
- Het
dmesg
commando gebruiken - Formaatuitgang
dmesg
dmesg
uitvoer filteren- De ringbuffer wissen
- Conclusie
De Linux-kernel is de kern van het besturingssysteem dat de toegang tot de systeembronnen beheert, zoals CPU, I / O-apparaten, fysiek geheugen en bestandssystemen. De kernel schrijft verschillende berichten naar de kernelringbuffer tijdens het opstartproces en wanneer het systeem actief is. Deze berichten bevatten verschillende informatie over de werking van het systeem.
De kernelringbuffer is een deel van het fysieke geheugen dat de logboekberichten van de kernel bevat. Het heeft een vaste grootte, wat betekent dat zodra de buffer vol is, de oudere logboekrecords worden overschreven.
Het opdrachtregelprogramma
dmesg
wordt gebruikt om de kernelringbuffer in Linux en andere Unix-achtige besturingssystemen af te drukken en te besturen. Het is handig voor het onderzoeken van kernel boot berichten en het debuggen van hardware gerelateerde problemen.
In deze tutorial behandelen we de basisprincipes van de opdracht
dmesg
.
Het
dmesg
commando gebruiken
De syntaxis voor de opdracht
dmesg
is als volgt:
dmesg
Wanneer opgeroepen zonder opties, schrijft
dmesg
alle berichten van de kernelringbuffer naar de standaarduitvoer:
dmesg
Standaard kunnen alle gebruikers de opdracht
dmesg
uitvoeren. Op sommige systemen kan de toegang tot
dmesg
echter worden beperkt voor niet-rootgebruikers. In deze situatie krijgt u bij het inschakelen van
dmesg
een foutmelding zoals hieronder:
dmesg: read kernel buffer failed: Operation not permitted
De kernelparameter
kernel.dmesg_restrict
geeft aan of
kernel.dmesg_restrict
gebruikers
dmesg
kunnen gebruiken om berichten uit de
kernel.dmesg_restrict
van de kernel te bekijken. Om de beperkingen te verwijderen, stelt u deze in op nul:
sudo sysctl -w kernel.dmesg_restrict=0
Gewoonlijk bevat de uitvoer veel regels met informatie, zodat alleen het laatste deel van de uitvoer zichtbaar is. Als u één pagina per keer wilt bekijken, stuurt u de uitvoer naar een pager-hulpprogramma zoals
less
of
more
:
dmesg --color=always | less
De
--color=always
gebruikt om de gekleurde uitvoer te behouden.
dmesg | grep -i usb
dmesg
leest de berichten gegenereerd door de kernel uit het virtuele
/proc/kmsg
bestand. Dit bestand biedt een interface voor de kernelringbuffer en kan slechts met één proces worden geopend. Als het
syslog
proces op uw systeem wordt uitgevoerd en u probeert het bestand met
cat
of
less
, blijft de opdracht hangen.
De
syslog
daemon dumpt kernelberichten naar
/var/log/dmesg
, dus je kunt dat logbestand ook gebruiken:
Formaatuitgang
dmesg
De opdracht
dmesg
biedt een aantal opties waarmee u de uitvoer kunt formatteren en filteren.
Een van de meest gebruikte opties van
dmesg
is
-H
(
--human
), die de voor mensen leesbare uitvoer mogelijk maakt. Met deze optie wordt de opdrachtuitvoer naar een pager geleid:
dmesg -H
Gebruik de optie
-T
(
--ctime
) om voor mensen leesbare tijdstempels af te drukken:
dmesg -T
IPv6: ADDRCONF(NETDEV_CHANGE): wlp1s0: link becomes ready
Het tijdstempelformaat kan ook worden ingesteld met behulp van het
--time-format
dmesg --time-format=delta
U kunt ook twee of meer opties combineren:
dmesg -H -T
Om de uitvoer van de opdracht
dmesg
in realtime te bekijken, gebruikt u de optie
-w
(
--follow
):
dmesg
uitvoer filteren
U kunt de
dmesg
uitvoer beperken tot bepaalde voorzieningen en niveaus.
De faciliteit vertegenwoordigt het proces dat het bericht heeft gemaakt.
dmesg
ondersteunt de volgende logfaciliteiten:
-
kern
- kernel berichtenuser
- gebruikersniveau berichtenmail
- mailsysteemdaemon
- systeem daemonsauth
- beveiligings- / autorisatieberichtensyslog
- interne syslogd berichtenlpr
- line printer subsysteemnews
- netwerk nieuws subsysteem
De
-f
(
--facility
) optie kunt u de uitvoer beperken tot specifieke voorzieningen. De optie accepteert een of meer door komma's gescheiden voorzieningen.
Als u bijvoorbeeld alleen de kernel- en systeemdaemons-berichten wilt weergeven die u zou gebruiken:
dmesg -f kern, daemon
Elk logboekbericht is gekoppeld aan een logboekniveau dat het belang van het bericht aangeeft.
dmesg
ondersteunt de volgende logniveaus:
-
emerg
- systeem is onbruikbaaralert
- actie moet onmiddellijk worden ondernomencrit
- kritieke condities fout - waarschuw condities - waarschuw conditiesnotice
- normale maar belangrijke conditieinfo
- informatievedebug
- debug-level berichten
De
-l
(
--level
) optie beperkt de uitvoer tot gedefinieerde niveaus. De optie accepteert een of meer door komma's gescheiden niveaus.
De volgende opdracht geeft alleen de fout- en kritieke berichten weer:
De ringbuffer wissen
Met de optie
-C
(
--clear
) kunt u de ringbuffer wissen:
sudo dmesg -C
Alleen root of gebruikers met sudo-rechten kunnen de buffer wissen.
Om de bufferinhoud af te drukken voordat u deze wist, gebruikt u de optie
-c
(
--read-clear
):
sudo dmesg -c
Conclusie
Met de opdracht
dmesg
kunt u de
dmesg
bekijken en beheren. Het kan erg handig zijn bij het oplossen van kernel- of hardwareproblemen.
Typ
man dmesg
in uw terminal voor informatie over alle beschikbare
dmesg
opties.
Chmod commando in linux (bestandsrechten)
In Linux wordt toegang tot de bestanden beheerd via de bestandsrechten, attributen en eigendom. Deze tutorial behandelt het gebruik van de opdracht chmod om de toegangsrechten van bestanden en mappen te wijzigen.
Pwd commando in linux (huidige werkmap)
De huidige werkmap is de map waarin de gebruiker momenteel werkt. In dit artikel laten we u zien hoe u uw huidige werkmap kunt bepalen met de opdracht pwd
Du commando in linux
De opdracht du, kort voor schijfgebruik, geeft de geschatte hoeveelheid schijfruimte weer die wordt gebruikt door bepaalde bestanden of mappen. Het is praktisch handig voor het vinden van bestanden en mappen die grote hoeveelheden schijfruimte in beslag nemen.