Når vi under vårt ansvar har maskiner med Linux -operativsystemer, er en av de mest nyttige og praktiske måtene å håndtere hvert aspekt av disse på riktig måte å kjenne til de forskjellige verktøyene og kommandoene som finnes for å distribuere og støtte dem.
Denne gangen vil Solvetic snakke om et kommandolinjeverktøy som heter strace, og vi skal se hvordan det kan bli praktisk for operativsystemadministrasjon.
Hva er stracestrace er et nyttig kommandolinjeverktøy for å diagnostisere, instruere og kjøre feilsøkingsoppgaver. Systemadministratorer finner strace et praktisk verktøy for å løse problemer med programmer som kilden ikke er tilgjengelig for, siden de ikke trenger å kompileres på nytt for å spore dem.
Strace -verktøyet fanger opp og registrerer alle systemanrop fra en prosess og signalene mottatt av prosessen. Strace har ansvaret for å vise navnet på hvert systemanrop sammen med dets argumenter i parentes og dens returverdi til standardfeil, eventuelt, det vil være mulig å omdirigere det til en fil.
1. Strace installasjon
For å installere strace må vi utføre en av følgende kommandoer:
sudo apt installere strace (Debian eller Ubuntu) yum installere strace (RedHat eller CentOS) dnf installere strace (Fedora)Hvis et program krasjer eller oppfører seg på en uventet måte, vil det være mulig å få tilgang til systemsamtalene for å få en ide om hva som egentlig skjedde under utførelsen.
Systemanrop kan kategoriseres i forskjellige hendelser: de som er knyttet til prosessstyring, de som tar en fil som et argument, de som involverer nettverk, minnetildeling, signaler, IPC og også systemanrop knyttet til filbeskrivelser.
2. Hvordan feilsøke prosessproblemer i Linux med strace -kommandoer
Deretter skal vi se forskjellige strace -kommandoer for å løse de forskjellige prosessproblemene som kan oppstå i Linux.
Spor systemanrop med straceDette alternativet lar oss spore alle systemanrop fra df -kommandoen, for dette utfører vi følgende:
strace df -h
I denne utgangen kan vi se forskjellige typer systemanrop foretatt av df -kommandoen, for eksempel er en av dem:
open (" / etc / ld.so.cache", O_RDONLY | O_CLOEXEC) = 3Hvor:
- Åpen: Det er typen systemanrop
- Det er argumentet for systemkallingen: "/etc/ld.so.cache", O_RDONLY | O_CLOEXEC
- 3: Det er returverdien for systemanropet
Spor Linux PID -prosesserHvis en prosess allerede kjører på systemet, vil det være mulig å spore den gjennom PID -en på følgende måte:
sudo strace -c -p 465Dette vil fylle skjermen med den kontinuerlige utgangen som viser at systemanropene foretas av prosessen. For å fullføre, trykker vi på Ctrl + C -tastene.
Få sammendraget av en Linux -prosessVed å bruke parameteren -c vil det være mulig å generere en rapport over total tid, anrop og feil for hvert systemanrop, for dette vil vi utføre følgende syntaks:
sudo strace -c -p (PID)
Skriv ut instruksjonspekeren under systemanrop. Alternativet -i viser instruksjonspekeren på tidspunktet for hvert systemanrop fra programmet.
sudo strace -i df -h
Vis tid på dagen for hver sporutgangslinjeMed strace er det mulig å skrive ut tidspunktet på dagen for hver linje i sporutgangen, ved å bruke -t flagget:
sudo strace -t df -h
Vis utskriftstid brukt på systemanropFor å vise tidsforskjellen mellom begynnelsen og slutten av hvert systemanrop fra et program, må vi bruke alternativet -T:
sudo strace -T df -h
Spor spesifikke anropKommandoen trace = write er kjent som et kvalifisert uttrykk, hvor trace er en kvalifikator (andre inkluderer signal, forkortelse, verbose, raw, read eller write) .I dette tilfellet skriver du inn verdien til kvalifiseringen. Følgende kommando viser i sanntid systemet kaller for å skrive ut df -utgangen til standard utgang:
sudo strace -e trace = skriv df -h
Noen flere kommandoer vi kan bruke er:
sudo strace -e trace = open, close df -hsudo strace -e trace = open, close, read, write df -hsudo strace -e trace = all df -h
Plott systemanrop basert på en tilstandDenne kommandoen kan brukes til å spore alle systemanrop som involverer prosessstyring, vi vil utføre følgende:
sudo strace -q -e trace = prosess df -h
For å spore alle systemanropene som tar et filnavn som et argument, kjører vi følgende kommando:
sudo strace -q -e trace = fil df -h
For å spore alle systemanropene som involverer minnetildeling, vil vi utføre følgende linje:
sudo strace -q -e trace = minne df -h
Omdiriger spor til utdatafilHvis vi vil skrive oppfølgende meldinger sendt til en standardfeil til en fil, bruker vi alternativet -o. Dette betyr at bare kommandoutgangen skrives ut på skjermen som følger:
sudo strace -o df_debug.txt df -h
Vi kan visualisere denne filen ved å kjøre linjen:
katt df_debug.txt
Distribuer strace -feilsøkingsutdataHvis vi vil vise feilsøkingsinformasjonen for strace -verktøyet, må vi bruke -d -flagget:
strace -d df -h
Strace hjelpFor å vise hjelp av strace -kommandoen vil vi utføre følgende linje:
mann strace
Slik har vi sett hvordan strace blir enda en hjelp for administrasjonsoppgaver i Linux -distroer.