Některé z těchto postupů nejspíš znáte, ale možná jste na ně pozapomněli. Pro jistotu zmiňujeme i notoricky známé věci. Detaily 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 řekne program file(1). Pokud chcete
vědět, jaké sdílené knihovny používá nějaká binárka, prozkoumejte ji
programem ldd(1). Nevíte-li, v jaké knihovně (programu,
.o souboru) je který symbol (funkce), vypíše vám je program
nm(1).
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 nebo journal. 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(1) (-f puštěný na další
konzole, třeba i přes grep(1) 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(1) – většinu problémů s provozem
odzkoušených programů vám pomůže odhalit strace(1). 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(1) – 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(1), duální k němu je
fuser(1), o síti na vašem počítači vám asi nejvíc řekne
netstat(1).
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(1). 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
programem telnet(1) na konkrétní port testované služby a
dráždit ji ručně. Mocnějším nástrojem je nc(1) (nikoliv
Norton Commander, ale netcat) – umí na specifikovaném portu
i naslouchat a pracuje i nad UDP (kromě jiného). Ke službě zabezpečené
protokolem SSL/TLS se obdobně připojíte pomocí
openssl s_client.
Sledujte, co se děje na vašem počítači
Nezapomínejte ani na notoricky známé (doufejme) prográmky
top(1) a ps(1), ze kterých vidíte, co a jak
intenzivně běží. Zátěž na discích posoudíte programem
iostat(1).