När vi under vårt ansvar har maskiner med Linux -operativsystem, är ett av de mest användbara och praktiska sätten att hantera varje aspekt av dessa korrekt de olika verktyg och kommandon som finns för att distribuera och stödja dem.
Den här gången kommer Solvetic att prata om ett kommandoradsverktyg som heter strace och vi får se hur det kan bli praktiskt för operativsystemadministration.
Vad är stracestrace är ett användbart kommandoradsverktyg för att diagnostisera, instruera och köra felsökningsuppgif.webpter. Systemadministratörer finner strace ett praktiskt verktyg för att lösa problem med program som källan inte är tillgänglig för eftersom de inte behöver kompileras om för att spåra dem.
Strace -verktyget fångar och registrerar alla systemanrop som görs av en process och signalerna som tas emot av processen. Strace ansvarar för att visa namnet på varje systemanrop tillsammans med dess argument inom parentes och dess returvärde till standardfel, eventuellt, det kommer att vara möjligt att omdirigera det till en fil.
1. Strace installation
För att installera strace måste vi köra ett av följande kommandon:
sudo apt install strace (Debian eller Ubuntu) yum install strace (RedHat eller CentOS) dnf install strace (Fedora)Om ett program kraschar eller beter sig på ett oväntat sätt kommer det att vara möjligt att komma åt systemsamtalen för att få en uppfattning om vad som exakt hände under dess körning.
Systemanrop kan kategoriseras i olika händelser: de som är relaterade till processhantering, de som tar en fil som ett argument, de som involverar nätverk, minnesallokering, signaler, IPC och även systemsamtal relaterade till filbeskrivare.
2. Så här felsöker du processproblem i Linux med strace -kommandon
Därefter kommer vi att se olika strace -kommandon för att lösa de olika processproblemen som kan uppstå i Linux.
Spårningssamtal med straceMed det här alternativet kan vi spåra alla systemanrop som görs av kommandot df, för detta utför vi följande:
strace df -h
I denna utmatning kan vi se olika typer av systemanrop som görs av kommandot df, till exempel är ett av dem:
open (" / etc / ld.so.cache", O_RDONLY | O_CLOEXEC) = 3Var:
- Öppen: Det är typen av systemanrop
- Det är argumentet för systemanropet: "/etc/ld.so.cache", O_RDONLY | O_CLOEXEC
- 3: Det är returvärdet för systemanropet
Spåra Linux PID -processerOm en process redan körs på systemet är det möjligt att spåra det genom dess PID enligt följande:
sudo strace -c -p 465Detta fyller skärmen med den kontinuerliga utmatningen som visar att systemsamtalen görs av processen, för att avsluta trycker vi på Ctrl + C -tangenterna.
Få en sammanfattning av en Linux -processGenom att använda parametern -c blir det möjligt att generera en rapport om total tid, samtal och fel för varje systemanrop, för detta kommer vi att utföra följande syntax:
sudo strace -c -p (PID)
Skriv ut instruktionspekaren under systemsamtal. Alternativet -i visar instruktionspekaren vid varje systemsamtal som görs av programmet.
sudo strace -i df -h
Visa tid på dagen för varje spårutgångslinjeMed strace är det möjligt att skriva ut tid på dagen för varje rad i spårningsutmatningen med hjälp av -t -flaggan:
sudo strace -t df -h
Visa utskriftstid för systemsamtalFör att visa tidsskillnaden mellan början och slutet av varje systemanrop från ett program måste vi använda alternativet -T:
sudo strace -T df -h
Spåra specifika samtalSpåret = skriv -kommandot är känt som ett kvalificerat uttryck, där spårning är en kvalificerare (andra inkluderar signal, förkortning, utförlig, rå, läs eller skriv) .I det här fallet skriver du värdet på kvalificeringen. Följande kommando visar systemet i realtid för att skriva ut df -utmatningen till standardutmatning:
sudo strace -e trace = skriv df -h
Några ytterligare kommandon som vi kan använda är:
sudo strace -e trace = open, close df -hsudo strace -e trace = open, close, read, write df -hsudo strace -e trace = all df -h
Plotta systemsamtal baserat på ett villkorDetta kommando kan användas för att spåra alla systemanrop som involverar processhantering, vi kommer att utföra följande:
sudo strace -q -e trace = process df -h
För att spåra alla systemanrop som tar ett filnamn som argument kör vi följande kommando:
sudo strace -q -e trace = fil df -h
För att spåra alla systemanrop som innefattar minnestilldelning kör vi följande rad:
sudo strace -q -e trace = minne df -h
Omdirigera spår till utdatafilOm vi vill skriva uppföljningsmeddelanden som skickas till ett standardfel till en fil använder vi alternativet -o. Detta innebär att endast kommandoutmatningen skrivs ut på skärmen enligt följande:
sudo strace -o df_debug.txt df -h
Vi kan visualisera den här filen genom att köra raden:
katt df_debug.txt
Distribuera strace -felsökningsutdataOm vi vill visa felsökningsinformationen för strace -verktyget måste vi använda -d -flaggan:
strace -d df -h
Strace hjälpFör att visa hjälp av kommandot strace kör vi följande rad:
man strace
Så här har vi sett hur strace blir ytterligare en hjälp för hanteringsuppgif.webpter i Linux distros.