I denne opplæringen fordyper vi Linux Strace -kommandoen og demonstrerer noen få eksempelbruk.
Grunnleggende kommandosyntaks
Strace -kommandoen tar følgende syntaks:
$ Strace Options Command
Hvordan installere Linux Strace -kommandoen
De fleste moderne Linux -distribusjoner leveres med Strace Utility som standard. Imidlertid, hvis Strace ikke er installert på systemet ditt uansett grunn, følg trinnene nedenfor for å installere det.
På Debian / Ubuntu
Hvis du kjører Debian / Ubuntu-baserte systemer, utfør:
$ sudo apt install Strace
På RHEL / CENTOS
$ sudo yum installer Strace
For å bekrefte at Strace er installert, kan du sjekke versjonen som vist.
$ Strace -Versjon
La oss nå sjekke ut noen få eksempelbruk.
Grunnleggende Strace -kommando
I sitt mest grunnleggende format vil Strace -kommandoen spore og vise systemanrop, argumentene (vedlagt i firkantede seler eller parentes) og den kjørbare samtalen.
I eksemplet nedenfor kan vi se argumentene for å kjøre skriptet Hallo.sh, Ring lukket i parentes i første linje.
$ Strace ./Hallo.sh
På den aller siste linjen kan du se utgangsstatusen til kommandoen, i dette tilfellet, 0. Dette innebærer at kommandoen ble utført med suksess uten feil. En exit -kode på -1 betyr at det ble oppstått en feil under utførelsen.
Telle systemet ringer
Hvis du vil få antall systemanrop, bruk -c Alternativ for tellingen som vist.
$ strace -c ./Hallo.sh
Fra utdataene over kan du se antallet systemanrop som er gjort, inkludert å ringe.
Vis spesifikke systemanrop med Strace
I tillegg kan du velge å se arten av systemanrop som er laget med Strace ved å bruke -e Alternativ etterfulgt av arten av systemanropet. I utdraget som vises, har vi vist skrive- og lest -systemanropene.
$ Strace -e Trace = Skriv ./Hallo.sh
$ strace -e trace = lest ./Hallo.sh
Spor nettverkssystemanrop
Du kan begrense Strace til å vise nettverkssystemanrop ved å spesifisere samtaletypen. Her. Spor = nettverk indikerer at vi har tenkt å få nettverksanropet til nettverkskommandoen Ping 8.8.8.8 -c 4.
$ Strace -e Trace = Network Ping 8.8.8.8 -c 4
Sporsignalsystemanrop
For systemrelaterte samtaler, bruk argumentet som angitt i kommandoen nedenfor. Kommandoen skriver ut signaloppringeren for Ping 8.8.8.8 -c 4 kommando.
$ Strace -e Trace = Signal Ping 8.8.8.8 -c 4
Skrive ut tidsstempel for hvert systemanrop
For å trekke ut tidsstempel for hver systemanrop, bruk -r Alternativ som demonstrert i følgende kommando.
$ strace -r ping 8.8.8.8 -c 4
Som du kan se, skrives en relativt tidsstempel for hver systemanrop. Tidsforskjellen mellom påfølgende systemanrop blir fanget og registrert.
Vis varigheten brukt på å ringe systemanrop
I tillegg kan du skrive ut varigheten av tidsbruk for hvert systemanrop ved å bruke -T alternativ som vist. Tidsbruken er angitt i den aller siste kolonnen som angitt.
$ strace -t ping 8.8.8.8 -c 4
Vis den nøyaktige tiden for hvert systemanrop
For å skrive ut den faktiske eller nøyaktige tiden for systemanropene, påkaller du -t alternativ som vist. Sanntids- eller veggklokketiden er skrevet ut i den første kolonnen.
$ strace -t ./Hallo.sh
Vis instruksjonspekeren for hver samtale
For å skrive ut instruksjonspekeren for alle systemanrop, bruk -Jeg alternativ.
$ strace -i ./Hallo.sh
Lagre utdataene fra systemanrop til en tekstfil
Til slutt gir Strace -kommandoen deg muligheten til å lagre utdataene til en tekstfil, som vist.
$ Strace -o Sample_output.tekst ./Hallo.sh
Her, Eksempel_Output.tekst er utdatafilen, mens ./Hallo.sh er kommandoen hvis system ringer vi sporer.
Innpakning
Strace-kommandoen er et hendig og kraftig kommandolinjeverktøy som hjelper med å feilsøke applikasjoner, kommandoer og prosesser, spesielt hvis du ikke har kildekoden tilgjengelig. Det er det valgte verktøyet for programvareutviklere og systemadministratorer.