Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!
Zadejte Vaši e-mailovou adresu:
Kamarád fotí rád?
Přihlas ho k odběru fotomagazínu!
Zadejte e-mailovou adresu kamaráda:
Software
Základní argumenty příkazu lsof
13. března 2003, 00.00 | Minule jsme se seznámili s příkazem lsof a řekli jsme si, k čemu je dobrý. Nyní se mu budeme věnovat nějakou chvíli podrobněji, a naučíme se s ním zacházet.
Minule jsme se seznámili s příkazem lsof a řekli jsme si, k čemu je dobrý. Nyní se mu budeme věnovat nějakou chvíli podrobněji, a naučíme se s ním zacházet.
Víme už, že voláme-li lsof bez argumentů, zobrazí všechny otevřené komunikační kanály všech běžících procesů. To je ovšem většinou příliš mnoho informací, mezi nimiž se ty, která nás doopravdy zajímají, špatně hledají; začneme proto dnes tím, že si ukážeme, jak výpis příkazu lsof omezit.
Vybrané kanály
Mezi nejběžnější přepínače příkazu lsof patří ty, které vybírají zobrazené komunikační kanály podle typu:
- -i: "internetové" kanály (sockety). Za argumentem je možné uvést konkrétní IP adresu, jež nás zajímá a další podrobnosti; to si ale ukážeme až později;
- -N: soubory sdílené prostřednictvím NFS;
např:
87 /tmp> lsof -i
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
telnet 499 ocs 3u inet 0x02a0bcfc 0t0 TCP 193.85.69.5:49196
Mail 2942 ocs 4u inet 0x037bf50c 0t0 TCP *:* (CLOSED)
...
OmniGraff 8731 ocs 9u inet 0x02495410 0t0 UDP *:50805
OmniGraff 8731 ocs 10u inet 0x02c83b10 0t0 UDP *:64895
OmniGraff 8731 ocs 12u inet 0x025c8cbc 0t0 TCP localhost:52273
Project 9506 ocs 3u inet 0x02a0a4cc 0t0 TCP *:8547 (LISTEN)
Safari 9572 ocs 24u inet 0x025cb7bc 0t0 TCP 193.85.69.5:53037
Safari 9572 ocs 25u inet 0t0 TCP no PCB, CANTSENDMORE, CANTRCVMORE
88 /tmp>
Požadované soubory
Chceme-li vidět seznam "obyčejných souborů", můžeme si je vyžádat buďto podle uživatele, jemuž patří, nebo podle jména (podobně jako tomu bylo u přepínače -i, i zde lsof nabízí bohatší služby, ale na ty se zběžně podíváme až později, až budeme mít základy za sebou).
- -u<uživatel>:"obyčejné" soubory (přesněji, objekty v systému souborů), jež náleží zadanému uživateli;
- <jméno>: soubor zadaného jména.
88 /tmp> lsof /dev/null
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
Window 180 ocs 0u VCHR 3,2 0t19264 36354436 /dev/null
Window 180 ocs 1u VCHR 3,2 0t19264 36354436 /dev/null
Window 180 ocs 2u VCHR 3,2 0t19264 36354436 /dev/null
Dock 449 ocs 0r VCHR 3,2 0t0 36354436 /dev/null
SystemUIS 471 ocs 0r VCHR 3,2 0t0 36354436 /dev/null
MoonDock 477 ocs 0r VCHR 3,2 0t0 36354436 /dev/null
...
89 /tmp>
Kombinace přepínačů
Přepínače můžeme kombinovat navzájem; lsof pak ukáže všechny komunikační kanály odpovídající všem zadaným přepínačům (spojují se tedy pomocí logické operace "nebo"). U přepínačů -i, -u a u jmen souborů, jež se zadávají bez přepínače, to navíc znamená, že jich můžeme vložit více najednou.