P090 - užitečné programy pro zvládnutí úkolů
Až budete vypracovávat úkoly spočívající většinou v rozchození nějakého
programu, může se vám hodit několik užitečných utilit, které už většinou
sice znáte, ale možná jste na nějakou pozapomněli. Zmíníme tedy pro jistotu
i některé zcela triviální, samozřejmě je možné, že na nějakou zapomeneme.
Bližší údaje o možnostech a spouštění najdete v příslušných manuálových
stránkách.
Zjistěte, si co je co
Typ souboru, tedy i to, zda se jedná o binárku či například shellovský skript
vám řeknem program file. Pokud chcete vědět, jaké sdílené knihovny
používá nějaká binárka, prozkoumejte ji programem ldd. Nevíte-li,
v jaké knihovně (programu, .o souboru) je který symbol (funkce),
vypíše vám je nm.
Sledujte, co vám program říká
Většina programů buď sama od sebe vypisuje údaje o svém běhu, nebo se dá
spouštět s přepínači (-d, -v, -i), které tuto možnost zapnou,
případně i nastaví obsažnost těchto hlášek. Ty lze sledovat a odchytávat
buď z (chybového) výstupu, nebo zejména v případě daemonů ze souboru, do
kterého je zapsal syslog. Najdete je většinou v adresáři /var/log,
nejčastěji jde o soubor messages. Vhodným nástrojem ke sledování
přicházejících hlášek je tail (-f puštěný na další
konzole, třeba i přes grep s vhodným vzorkem pro výběr toho, co vás
zajímá).
Sledujte, co program dělá
Chcete-li vědět, co se děje při spuštění nějaké binárky, nemusíte používat
hned gdb -- většinu problému s provozem odzkoušených programů vám
pomůže odhalit strace. Sleduje systémová volání, takže snadno
zjistíte např. s jakými soubory se program snaží pracovat, jak končí pokusy
o síťové spojení a podobné věci. Můžete ho napojit i na běžící procesy
(-p), sledovat i potomky původního procesu (-f), můžete
omezovat, co vám bude hlásit (-e), a mnoho dalších věcí.
Podobným programem je ltrace -- sleduje volání knihovních funkcí.
Sledujte, s čím program pracuje
Vidět, jaké soubory (včetně síťových spojení) daný proces používá vám umožní
program lsof, duální k němu je fuser, o síti na vašem
počítači vám asi nejvíc řekne netstat.
Sledujte, co se děje na síti
Chcete-li vidět, co běhá po síti, kdo s kým komunikuje, použijte
tcpdump. Pokud chcete přímo otestovat chování nějakého serveru,
máte v případě textových protokolů nad TCP možnost připojit se
telnetem na konkrétní port testované služby a dráždit ji ručně.
Mocnějším nástrojem je nc (nikoliv Norton Commander, ale
netcat) -- umí na specifikovaném portu i naslouchat a pracuje i
nad udp (kromě jiného).
Sledujte, co se děje na vašem počítači
Nezapomínejte ani na notoricky známe (doufejme) prográmky top
a ps, ze kterých vidíte, co a jak těžce běží.