Tartalomjegyzék
Kivonat
A rendszer állapotának vizsgálatára számos program és mechanizmus használható; ezek közül mutatunk be néhányat az alábbiakban. Leírunk néhány gyakori, a rutinfeladatok elvégzése során használt segédprogramot is a legfontosabb paraméterekkel együtt.
Minden bemutatott parancsnál megtalálhatók a vonatkozó kimenetek példái is. Ezekben a példákban az első sor maga a parancs (a > vagy # karakterrel jelzett prompt után). A megjegyzéseket szögletes zárójel ([...]
) jelöli, és ha szükséges, a hosszú sorokat megtörtük. A hosszú sorok sortöréseit visszafelé dőlt törtvonal (\
) jelzi.
# command -x -y output line 1 output line 2 output line 3 is annoyingly long, so long that \ we have to break it output line 3 [...] output line 98 output line 99
A leírásokat rövidre szabtuk, hogy annyi segédprogramról eshessen szó, amennyiről csak lehetséges. A parancsokról további információ a kézikönyvoldalakon (man) olvasható. A legtöbb parancs kiadható a --help
paraméterrel is; ennek hatására kiírja a használható paraméterek rövid listáját.
Az ldd parancs annak megkeresésére használható, hogy milyen dinamikus könyvtárakat tölt be az argumentumként megadott végrehajtható fájl.
tux@mercury:~> ldd /bin/ls linux-gate.so.1 => (0xffffe000) librt.so.1 => /lib/librt.so.1 (0xb7f97000) libacl.so.1 => /lib/libacl.so.1 (0xb7f91000) libc.so.6 => /lib/libc.so.6 (0xb7e79000) libpthread.so.0 => /lib/libpthread.so.0 (0xb7e67000) /lib/ld-linux.so.2 (0xb7fb6000) libattr.so.1 => /lib/libattr.so.1 (0xb7e63000)
A statikus bináris állományoknak egyetlen dinamikus könyvtárra sincs szükségük.
tux@mercury:~> ldd /bin/sash not a dynamic executable tux@mercury:~> file /bin/sash /bin/sash: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.4, statically linked, for GNU/Linux 2.6.4, stripped
Az ltrace parancs lehetővé teszi egy folyamat könyvtárhívásainak követését. A parancs hasonló módon használható, mint az strace. A -c
paraméter kijelzi a könyvtárhívások számát és időtartamát.
tux@mercury:~> ltrace -c find ~ % time seconds usecs/call calls function ------ ----------- ----------- --------- -------------------- 34.37 6.758937 245 27554 __errno_location 33.53 6.593562 788 8358 __fprintf_chk 12.67 2.490392 144 17212 strlen 11.97 2.353302 239 9845 readdir64 2.37 0.466754 27 16716 __ctype_get_mb_cur_max 1.17 0.230765 27 8358 memcpy [...] 0.00 0.000036 36 1 textdomain ------ ----------- ----------- --------- -------------------- 100.00 19.662715 105717 total
Az strace segédprogram segít egy futó program összes rendszerhívásának nyomon követésében. Adjon meg egy parancsot a szokásos módon, de az elejére írja oda, hogy strace:
tux@mercury:~> strace ls execve("/bin/ls", ["ls"], [/* 61 vars */]) = 0 uname({sys="Linux", node="mercury", ...}) = 0 brk(0) = 0x805c000 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or \ directory) open("/etc/ld.so.cache", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=89696, ...}) = 0 mmap2(NULL, 89696, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7ef2000 close(3) = 0 open("/lib/librt.so.1", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0000\36\0"..., 512) \ = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size=36659, ...}) = 0 [...] stat64(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) \ = 0xb7ca7000 write(1, "bin Desktop Documents music\tM"..., 55bin Desktop Documents \ \ music Music public_html tmp ) = 55 close(1) = 0 munmap(0xb7ca7000, 4096) = 0 exit_group(0) = ?
Egy adott fájl megnyitására történt kísérletek nyomon követéséhez például írja be a következőt:
tux@mercury:~> strace -e open ls .bashrc open("/etc/ld.so.cache", O_RDONLY) = 3 open("/lib/librt.so.1", O_RDONLY) = 3 open("/lib/libacl.so.1", O_RDONLY) = 3 open("/lib/libc.so.6", O_RDONLY) = 3 open("/lib/libpthread.so.0", O_RDONLY) = 3 open("/lib/libattr.so.1", O_RDONLY) = 3 [...]
Az összes leszármazott folyamat nyomon követéséhez használja a -f
paramétert. Az strace viselkedése és kimeneti formátumai nagymértékben szabályozhatók. További információ: man strace.