Jak vypsat soubory a analyzovat systém pomocí příkazu lsof v systému Linux
Nástroj lsof pro Linux umožňuje rychlé monitorování systému a detekci problémů. Poskytuje seznam otevřených souborů, který můžete pomocí filtrů a možností optimalizovat podle svých konkrétních potřeb.
Co je Linux lsof?
Pro monitorování a analýzu vašeho systému Linux je lsof snadno použitelným nástrojem. Tento program, vyvinutý a vydaný v roce 1994 Vicem Abellem, je open source a je součástí standardní instalace mnoha distribucí Linuxu, jako jsou Debian nebo Ubuntu. lsof je zkratka pro „List open files“ (Seznam otevřených souborů). Program poskytuje informace o typech souborů, které jsou aktuálně otevřené nebo byly dříve otevřené spuštěnými procesy. Patří sem běžné soubory, adresáře, sokety, disky a porty. Zobrazuje přehledný a uspořádaný seznam různých procesů a souvisejících souborů.
Jak funguje Linux lsof?
Pokud lsof ve vašem systému není, jednoduše jej nainstalujte pomocí tohoto příkazu pro Linux:
$ apt-get install lsofbashPo instalaci vám Linux lsof umožní získat komplexní přehled o aktivních procesech ve vašem počítači. To je možné, protože v systémech typu Unix je vše považováno za soubor. Díky tomu můžete pomocí lsof určit, které procesy mají přístup k určitému souboru.
Jak vypadá syntaxe Isof?
Chcete použít lsof? Toto je základní syntaxe odpovídajícího příkazu:
$ lsof [Option] <Format>bashAčkoli je možné používat lsof bez voleb nebo filtrů, není to doporučené. Výsledný výstup by byl rozsáhlý a obtížně interpretovatelný.
Jaké možnosti a filtry jsou k dispozici v programu lsof pro Linux?
lsof rozumí mnoha výstupním možnostem. Nejdůležitější z nich jsou:
- -F: Tato volba zajišťuje, že všechny výsledky budou vypsány v jednom sloupci.
- -l: Tato volba umožňuje zobrazit ID uživatele namísto jména.
- -n: Pomocí této volby se místo názvů hostitelů zobrazí odpovídající IP adresy.
- -P: Tímto způsobem se zobrazují čísla portů namísto názvů služeb.
- -r [x]: Tato volba zajistí, že výstup bude znovu proveden každých x sekund.
- -t: S touto volbou se zobrazí pouze seznam PID (identifikátor procesu).
Kromě toho lsof zná řadu možností filtrování. Nejběžnější z nich jsou:
- -a: Jedná se o logickou operaci AND namísto operace OR; používá se ve výchozím nastavení.
- -c [Proces]: Zjistí, který soubor je používán kterým procesem.
- +D /file/user: Tento filtr poskytuje informace o konkrétním adresáři a jeho uživateli.
- /dev/drive: Tento filtr použijte ke kontrole konkrétního disku.
- -i [TCP/UDP nebo alternativní IP adresa nebo port]: Poskytuje informace o tom, které procesy používají které síťové služby.
- +L1: Tento filtr použijte k získání informací o smazaných souborech.
- +p PID: Poskytuje informace o souborech používaných konkrétním PID.
- /path/file: Poskytuje informace o konkrétním souboru.
- -u [uživatel]: Zjistěte, který uživatel používá které soubory.
K čemu se používá Linux lsof?
Na závěr vám na několika příkladech ukážeme, jak a k čemu se lsof používá.
$ lsof -u rootbashTo vám umožní zobrazit všechny soubory, které root aktuálně udržuje otevřené.
$ lsof /mount/pathbashČasto se lsof používá k identifikaci programů, které brání spuštění příkazu mount. Tento úkol nelze provést, pokud jsou související soubory stále otevřené.
$ lsof -n -ibashTento příkaz umožňuje zobrazit seznam všech otevřených portů.