Przejdź do głównej zawartości

lsof


  • lsof – narzędzie diagnostyczne pokazujące, które pliki (w tym katalogi, gniazda sieciowe, urządzenia itp.) są aktualnie otwarte przez procesy.
  • Umożliwia identyfikację procesów blokujących pliki, monitorowanie aktywności sieciowej i debugowanie problemów z systemem plików.
  • Dostępne w większości dystrybucji Linux oraz w systemach BSD i macOS.

Okno terminala
lsof [opcje] [plik...]
  • Bez podania parametrów wypisuje listę wszystkich otwartych plików w systemie.

ParametrOpis
-u użytkownikPokazuje pliki otwarte przez określonego użytkownika
-p PIDPokazuje pliki otwarte przez dany proces
-iWyświetla otwarte połączenia sieciowe
+D katalogWyszukuje pliki otwarte w określonym katalogu (rekurencyjnie)
-tWyświetla tylko PID-y procesów
-nPomija odwzorowanie nazw hostów
-PWyświetla numery portów zamiast nazw
--helpWyświetla pomoc programu

Okno terminala
# Lista wszystkich otwartych plików w systemie
lsof
# Sprawdzenie plików otwartych przez proces o PID 1234
lsof -p 1234
# Wyświetlenie plików otwartych przez użytkownika 'jan'
lsof -u jan
# Lista procesów korzystających z portu 80
lsof -i :80
# Szukanie otwartych plików w katalogu /var/log
sudo lsof +D /var/log
  • Pierwszy przykład pokazuje pełny stan systemu.
  • Drugi filtruje według konkretnego procesu.
  • Trzeci przydatny w analizie aktywności użytkownika.
  • Czwarty sprawdza połączenia na wskazanym porcie.
  • Piąty służy do lokalizowania procesów blokujących pliki w katalogu.

  • Wymaga uprawnień administratora, aby zobaczyć pełną listę plików i procesów.
  • Może generować bardzo dużą ilość danych – warto filtrować wyniki odpowiednimi opcjami.

Błąd / KomunikatPrzyczynaRozwiązanie
lsof: command not foundBrak zainstalowanego pakietuZainstaluj pakiet lsof odpowiedni dla dystrybucji
Brak wynikówBrak otwartych plików spełniających kryteriaSprawdź parametry polecenia