W tym samouczku zagłębiamy się w polecenie Linux Strace i pokazujemy kilka przykładowych zastosowań.
Podstawowa składnia polecenia
Polecenie Strace przyjmuje następującą składnię:
komenda opcji $ strate
Jak zainstalować polecenie Linux Strace
Większość nowoczesnych dystrybucji Linux jest domyślnie wysyła się z Utility Strace. Jeśli jednak Strace nie jest zainstalowany w systemie z jakiegokolwiek powodu, wykonaj poniższe czynności, aby go zainstalować.
Na Debian / Ubuntu
Jeśli uruchamiasz systemy oparte na Debian / Ubuntu, wykonaj:
$ sudo apt instal instal Strace
Na RHEL / CENTOS
$ sudo yum instaluj strace
Aby sprawdzić, czy strace jest zainstalowany, możesz sprawdzić jego wersję, jak pokazano.
$ strace --version
Sprawdźmy teraz kilka przykładowych zastosowań.
Podstawowe polecenie Strace
W swoim najbardziej podstawowym formacie polecenie Strace prześledzi i wyświetli wywołania systemowe, argumenty (zamknięte w kwadratowych aparatach ortodontycznych lub nawiasach) i połączeniu wykonywalnym.
W poniższym przykładzie możemy zobaczyć argumenty uruchamiania skryptu Witam.cii, połączenie zamknięte w nawiasach w pierwszej linii.
$ Strace ./Witam.cii
W ostatnim wierszu możesz zobaczyć status wyjścia polecenia, w tym przypadku 0. Oznacza to, że polecenie zostało pomyślnie wykonane bez żadnego błędu. Kod wyjściowy -1 oznacza, że podczas wykonywania napotkano błąd.
Policz wywoływanie systemu
Jeśli chcesz uzyskać liczbę połączeń systemowych, użyj -C Opcja dla liczby jak pokazano.
$ strace -c ./Witam.cii
Z powyższego wyjścia można zobaczyć liczbę wykonanych połączeń systemowych, w tym wykonywanie połączeń.
Wyświetl określone wywołania systemowe ze Strage
Dodatkowo możesz wybrać charakter wywołań systemowych wykonanych za pomocą Strace za pomocą -mi Opcja, po której następuje charakter wywołania systemu. Na pokazanym fragmencie wyświetliśmy wywołań systemu zapisu i odczytu.
$ strace -e trace = zapisz ./Witam.cii
$ strace -e trace = odczyt ./Witam.cii
Trace Network System wywołuje
Możesz ograniczyć Strace do wyświetlania połączeń systemowych, określając rodzaj połączenia. Tutaj. Trace = sieć Wskazuje, że zamierzamy uzyskać połączenie sieciowe polecenia sieciowego ping 8.8.8.8 -C 4.
$ strace -e trace = ping sieci 8.8.8.8 -C 4
Trace Signal System wywołuje
W przypadku połączeń związanych z systemem użyj argumentu, jak wskazano w poniższym poleceniu. Polecenie wydrukuje wezwanie sygnału dla ping 8.8.8.8 -C 4 Komenda.
$ strace -e trace = sygnał ping 8.8.8.8 -C 4
Drukowanie znacznika czasu każdego wywołania systemu
Aby wyodrębnić znacznik czasu dla każdego wywołania systemu, użyj -R Opcja, jak pokazano w następującym poleceniu.
$ strace -r ping 8.8.8.8 -C 4
Jak widać, dla każdego wywołania systemu drukowana jest względny znacznik czasu. Różnica czasu między kolejnymi wywołaniami systemowymi jest przechwytywana i rejestrowana.
Wyświetl czas trwania na wykonywanie połączeń systemowych
Ponadto możesz wydrukować czas spędzony na każdym połączeniu systemowym za pomocą -T opcja jak pokazano. Czas spędzony jest wskazany w ostatniej kolumnie, jak wskazano.
$ strace -t ping 8.8.8.8 -C 4
Wyświetl dokładny czas każdego wywołania systemu
Aby wydrukować rzeczywisty lub dokładny czas wywołania systemu, wywołać -T opcja jak pokazano. Czas w czasie rzeczywistym lub zegar ściany jest wydrukowany w pierwszej kolumnie.
$ strace -t ./Witam.cii
Wyświetl wskaźnik instrukcji dla każdego połączenia
Aby wydrukować wskaźnik instrukcji dla każdego wywołania systemu, użyj -I opcja.
$ strace -i ./Witam.cii
Zapisz dane wyjściowe wywołań systemowych do pliku tekstowego
Wreszcie polecenie Strace daje opcję zapisania wyjścia na plik tekstu, jak pokazano.
$ strace -o próbka_output.tekst ./Witam.cii
Tutaj, próbka_output.tekst to plik wyjściowy, podczas gdy ./Witam.cii jest poleceniem, którego systemy wywołujemy.
Owinięcie
Polecenie Strace to przydatne i potężne narzędzie wiersza poleceń, które pomaga debugować aplikacje, polecenia i procesy, szczególnie jeśli nie masz dostępnego kodu źródłowego. Jest to narzędzie wyboru dla programistów i administratorów systemów.