Linux-besturingssystemen bieden honderden commando's die zijn ontwikkeld om gebruikers de beste beheerfaciliteiten te bieden, of het nu op hardware-, software-, services- of procesniveau is, waarbij elk commando een speciale functie vervult en al dan niet betere resultaten oplevert. . We weten over de betrouwbaarheid en integriteit van Linux-distributies, maar zoals bij elk besturingssysteem of elke applicatie kan er een moment komen dat sommige componenten falen en in plaats van tijd te verspillen aan het zoeken naar duizenden oorzaken, kunnen we een commando gebruiken dat dit vereenvoudigt proces en is de opdracht dmesg.
Solvetic zal een volledige analyse maken van wat dmesg is en hoe actueel in Linux en zo zullen we ons realiseren dat het een geweldige hulptool wordt voor alle ondersteunende taken.
Wat is dmesgHet dmesg-commando wordt gebruikt om kernelberichten op Linux en andere Unix-achtige besturingssystemen op een veel meer georganiseerde manier naar standaarduitvoer te schrijven. Onthoud dat de kernel de kern van het besturingssysteem is, het is daar waar het besturingssysteem in het geheugen wordt geladen op het moment dat de computer wordt opgestart en de kernel kan bijna alles in het systeem besturen. Dankzij dit proces worden er door de kernel talloze berichten gegenereerd die tijdens het opstartproces op het scherm verschijnen.
De opdracht dmesg haalt de gegevens op door de kernelringbuffer te lezen. In principe is een buffer een deel van het computergeheugen dat is gereserveerd als tijdelijke plaats voor de gegevens die worden verzonden of ontvangen van een extern apparaat, zoals een harde schijf, een toetsenbord, enz., terwijl het bij een ringbuffer een buffer met een vaste grootte waarin alle nieuwe gegevens die worden toegevoegd de oudste gegevens die daar zijn opgeslagen, zullen overschrijven. dmesg wordt gebruikt om de kernelringbuffer te onderzoeken of te controleren en de standaardactie is om alle berichten van de kernelringbuffer weer te geven.
De berichten die door de kernel worden gegenereerd, vormen een fundamenteel onderdeel van de diagnostische taken, aangezien we in het geval van een apparaatstoring een samenvatting bij de hand hebben van wat er is gebeurd en dus de nodige ondersteunende maatregelen kunnen nemen. Bij het aansluiten of loskoppelen van een hardwareapparaat in het systeem, dankzij de opdracht dmesg, is het mogelijk om de gedetecteerde of losgekoppelde informatie in realtime te kennen en het beste van alles is dat de opdracht dmesg beschikbaar is in de meeste besturingssystemen op basis van Linux en Unix .
1. Gebruik de opdracht dmesg op Linux
Stap 1
Het basisgebruik van dit commando is om het uit te voeren zonder parameters:
DmesgStap 2
Dit zal resulteren in de weergave van alle kernelberichten:
VERGROTEN
Stap 3
Door alle getoonde informatie is het lastig om daar administratieve taken uit te voeren. We kunnen gebruik maken van de "-H" parameter om dmesg te vertellen dat de uitvoer leesbaar is voor gebruikers, wat de ondersteuningstaken zal vereenvoudigen. Daar vinden we veel duidelijkere details over de kernelring.
dmesg -H
VERGROTEN
Stap 4
Een ander alternatief om een analyse uit te voeren met dmesg is met de parameter "-w", waarmee we een script kunnen schrijven om het resultaat te analyseren met behulp van een reguliere expressie om de gebeurtenissen te filteren voor latere analyse:
dmesg -w
VERGROTEN
Stap 5
We kunnen zien dat de resultaten over het algemeen overvloedig zijn, het is mogelijk om de uitvoer alleen te beperken tot fouten en waarschuwingen om niet alles wat er intern in het systeem gebeurt te analyseren en hiervoor heeft het dmesg-commando acht niveaus om te gebruiken, waarvan elk kunnen worden gecombineerd om een veel completere en specifiekere zoekopdracht uit te voeren, deze niveaus zijn:
naar voren gekomenHet systeem kan niet worden gebruikt
alarmerenU moet onmiddellijk actie ondernemen.
kritiekKritieke omstandigheden.
foutjeFoutcondities.
waarschuwenWaarschuwingscondities.
kennisgevingNormale staat, maar met mogelijke storingen.
infoinformatie.
debuggenDebuggen van berichten.
Stap 6
We kunnen verschillende soorten niveaus gebruiken, we kunnen bijvoorbeeld het volgende uitvoeren:
dmesg --level = alert, info
VERGROTEN
Stap 7
De resultaten zijn afhankelijk van de staat van de kernel:
dmesg --level = fout, waarschuwen
VERGROTEN
2. Tijdstempels en details bekijken met dmesg Command
Stap 1
Door dmesg te gebruiken, is het mogelijk om in detail te weten op welk moment een fout of waarschuwing is opgetreden dankzij de parameter -T, kunnen we het als volgt uitvoeren:
dmesg --level = fout, waarschuw -T
VERGROTEN
Stap 2
Daar zien we details van de tijd en datum van het evenement. We kunnen een specifiek apparaat specificeren om de door dmesg gegenereerde resultaten weer te geven, hiervoor specificeren we de naam van het apparaat als volgt:
dmesg | grep -i enp0s3
VERGROTEN
Stap 3
Als we de uitvoer van dmesg alleen willen beperken tot berichten in de gebruikersruimte, gaan we de optie "-u" gebruiken:
dmesg -u
VERGROTEN
Stap 4
We kunnen gebruik maken van tools voor tekstmanipulatie, zoals meer (meer) of les (minder) samen met 'grep' met het dmesg-commando, de reden is dat de uitvoer van het dmesg-record niet op een enkele pagina past, we kunnen gebruik een van de volgende opties:
dmesg | meer dmesg | minder
VERGROTEN
Stap 5
Als we willen ontdekken welke harde schijven de kernel heeft gedetecteerd, is het mogelijk om te zoeken naar het trefwoord "sda" samen met "grep" om dit resultaat als volgt weer te geven:
dmesg | grep sda
VERGROTEN
Stap 6
We kunnen de parameter "head" samen met dmesg gebruiken om het aantal gewenste startregels te tonen, om alleen de eerste 15 regels weer te geven die we uitvoeren:
dmesg | hoofd -15
VERGROTEN
Stap 7
Op dezelfde manier, als we alleen de laatste 15 regels willen weergeven, voeren we het volgende uit:
dmesg | staart -15Stap 8
Om naar een bepaald apparaat of woord te zoeken, is het mogelijk om de regels te filteren met specifieke strings, waarbij de optie: -I instrueert het grep-commando om de hoofdletters te negeren (hoofdletters of kleine letters):
dmesg | grep -i usb dmesg | grep -i dma dmesg | grep -i tty dmesg | grep -i geheugen
VERGROTEN
Stap 9
Om de dmesg-gebeurtenisbuffer te wissen, voeren we uit:
dmesg -cOp deze manier hebben we gezien hoe dmesg een waardevol hulpprogramma is om alles wat er gebeurt met de kernel en zijn componenten in realtime te beheren en om een veel completere administratieve taak uit te voeren.