Kad pod našom odgovornošću imamo strojeve s operacijskim sustavima Linux, jedan od najkorisnijih i najpraktičnijih načina za ispravno upravljanje svakim od ovih aspekata je poznavanje različitih pomoćnih programa i naredbi koji postoje za njihovu implementaciju i podršku.
Ovoga puta Solvetic će govoriti o uslužnom programu za naredbeni redak pod nazivom strace i vidjet ćemo kako to može postati praktično za administraciju operacijskog sustava.
Što je stracestrace je koristan alat za naredbeni redak za dijagnosticiranje, podučavanje i pokretanje zadataka otklanjanja pogrešaka. Administratori sustava smatraju da je strace praktičan alat za rješavanje problema s programima za koje izvor nije dostupan jer ih nije potrebno ponovno kompajlirati da bi ih pratili.
Alat strace bilježi i bilježi sve sistemske pozive koje je proces obavio i signale koje proces prima, strace je zadužen za prikaz imena svakog sistemskog poziva zajedno s argumentima u zagradama i njegovu povratnu vrijednost na standardnu pogrešku, izborno, bit će moguće preusmjeriti ga u datoteku.
1. Instalacija Strace
Za instaliranje strace moramo izvršiti jednu od sljedećih naredbi:
sudo apt install strace (Debian ili Ubuntu) yum install strace (RedHat ili CentOS) dnf install strace (Fedora)U slučaju pada programa ili neočekivanog ponašanja, bit će moguće pristupiti sistemskim pozivima kako biste stekli uvid u to što se točno dogodilo tijekom izvršavanja.
Sistemski pozivi mogu se kategorizirati u različite događaje: one koji se odnose na upravljanje procesima, one koji uzimaju datoteku kao argument, one koji uključuju mreže, raspodjelu memorije, signale, IPC, a također i sistemske pozive vezane za deskriptore datoteka.
2. Kako riješiti probleme procesa u Linuxu pomoću naredbi strace
Zatim ćemo vidjeti različite strace naredbe za rješavanje različitih problema procesa koji mogu nastati u Linuxu.
Praćenje poziva sustava sa straceOva nam opcija omogućuje praćenje svih sistemskih poziva koje izvršava naredba df, za to izvršavamo sljedeće:
strace df -h
U ovom izlazu možemo vidjeti različite vrste sistemskih poziva koje izvršava naredba df, na primjer, jedan od njih je:
open (" / etc / ld.so.cache", O_RDONLY | O_CLOEXEC) = 3Gdje:
- Otvoreno: To je vrsta sistemskog poziva
- To je argument sistemskog poziva: "/etc/ld.so.cache", O_RDONLY | O_CLOEXEC
- 3: To je povratna vrijednost sistemskog poziva
Pratite Linux PID proceseAko je proces već pokrenut u sustavu, bit će ga moguće pratiti kroz njegov PID na sljedeći način:
sudo strace -c -p 465Ovo će ispuniti zaslon kontinuiranim izlazom koji pokazuje da se sistemski pozivi obavljaju postupkom. Za kraj ćemo pritisnuti tipke Ctrl + C.
Dohvatite sažetak Linux procesaPomoću parametra -c bit će moguće generirati izvješće o ukupnom vremenu, pozivima i pogreškama za svaki sistemski poziv, za to ćemo izvršiti sljedeću sintaksu:
sudo strace -c -p (PID)
Ispis pokazivača uputa tijekom sistemskog poziva. Opcija -i prikazuje pokazivač uputa u vrijeme svakog sistemskog poziva koji je napravio program.
sudo strace -i df -h
Prikažite doba dana za svaku izlaznu liniju praćenjaSa strace je moguće ispisati doba dana za svaki redak u izlazu praćenja, koristeći zastavicu -t:
sudo strace -t df -h
Prikaz vremena ispisa potrošenog na sistemske poziveDa bismo prikazali vremensku razliku između početka i kraja svakog sistemskog poziva programa, moramo koristiti opciju -T:
sudo strace -T df -h
Pratite određene poziveNaredba trace = write poznata je kao kvalificirani izraz, gdje je trace kvalifikator (drugi uključuju signal, skraćenicu, detaljno, neobrađeno, čitanje ili pisanje). U tom slučaju upisujete vrijednost kvalifikatora. Sljedeća naredba prikazuje u stvarnom vremenu sistemski poziv za ispis df izlaza na standardni izlaz:
sudo strace -e trace = write df -h
Neke dodatne naredbe koje možemo koristiti su:
sudo strace -e trag = otvaranje, zatvaranje df -hsudo strace -e trag = otvaranje, zatvaranje, čitanje, pisanje df -hsudo strace -e trag = sve df -h
Iscrtajte sistemske pozive na temelju uvjetaOva naredba može se koristiti za praćenje svih sistemskih poziva koji uključuju upravljanje procesima, izvršit ćemo sljedeće:
sudo strace -q -e trag = proces df -h
Sada, da bismo pratili sve sistemske pozive koji kao argument uzimaju naziv datoteke, izvest ćemo sljedeću naredbu:
sudo strace -q -e trag = datoteka df -h
Za praćenje svih sistemskih poziva koji uključuju dodjelu memorije izvršit ćemo sljedeći redak:
sudo strace -q -e trag = memorija df -h
Preusmjeri trag na izlaznu datotekuAko želimo u datoteku zapisati dodatne poruke poslane na standardnu pogrešku, upotrijebit ćemo opciju -o. To znači da se na ekranu ispisuje samo izlaz naredbe:
sudo strace -o df_debug.txt df -h
Ovu datoteku možemo vizualizirati izvršavanjem retka:
mačka df_debug.txt
Implementirajte izlaz za otklanjanje pogrešaka straceAko želimo prikazati informacije o otklanjanju pogrešaka za alat strace, moramo upotrijebiti zastavicu -d:
strace -d df -h
Straceova pomoćZa prikaz pomoći naredbe strace izvršit ćemo sljedeći redak:
man strace
Ovako smo vidjeli kako strace postaje još jedna pomoć za upravljačke zadatke u Linux distribucijama.