Być może natkniesz się na powiedzenie: „Wszystko jest plik w Linux.„Chociaż nie jest to do końca prawdą, zawiera zbiór prawd.
W systemach Linux i Unika, wszystko jest jak plik. Oznacza to, że zasoby w systemie UNIX są przypisane deskryptorowi pliku, w tym urządzenia pamięci, gniazda sieciowe, procesy itp.
Deskryptor pliku to unikalny numer identyfikujący plik i inne urządzenia wejściowe/wyjściowe. Opisuje zasoby i sposób, w jaki do niej uzyskuje dostęp. Pomyśl o tym jak o bramie do zasobów sprzętowych abstrakcji jądra.
Niestety koncepcja deskryptorów plików wykracza poza zakres tego samouczka; Rozważ link podany poniżej, aby zacząć więcej nauki:
https: // en.Wikipedia.org/wiki/file_descriptor
Oznacza to, że systemy UNIX i UNIX, takie jak Linux, używają takich plików mocno. Jako zasilacz Linux, oglądanie otwartych plików, procesu i użytkowników ich używających jest niezwykle przydatne.
Ten samouczek skupi się na sposobach przeglądania otwartych plików i który proces lub użytkownik jest odpowiedzialny.
Wymagania wstępne
Zanim zaczniemy, upewnij się, że masz:
Jeśli je masz, zacznijmy:
Użyteczność LSOF
Utworzone przez Victora A Abell, Lista otwartych plików lub LSOF w skrócie, to narzędzie wiersza poleceń, które pozwala nam przeglądać otwarte pliki i procesy lub użytkowników, którzy je otworzyli.
Użyteczność LSOF jest dostępna w głównych rozkładach Linuksa; Może się jednak nie zainstalować, a zatem może wymagać instalacji ręcznie.
Jak zainstalować LSOF na Debian/Ubuntu
Aby zainstalować go w Debian, użyj polecenia:
Sudo apt-get Aktualizacja
sudo apt -get instaluj lsof -y
Jak zainstalować na Rehl/Centos
Aby zainstalować na Rehl i CentOS, użyj polecenia:
Aktualizacja Sudo DNF
sudo dnf instaluj lsof
Jak zainstalować na łuku
W Arch zadzwoń do menedżera pakietów za pomocą polecenia:
Sudo Pacman -sy
sudo pacman -s lsof
Jak zainstalować na Fedora
Na Fedorze użyj polecenia:
sudo yum instaluj lsof
Po zainstalowaniu i zaktualizowaniu narzędzia LSOF możemy zacząć go używać.
Podstawowe użycie LSOF
Aby użyć narzędzia LSOF, wprowadź polecenie:
sudo lsof
Po wykonaniu powyższego polecenia LSOF zrzuci wiele informacji, jak pokazano poniżej:
Powyższe dane wyjściowe pokazuje wszystkie pliki otwarte przez procesy. Wyjście ma różne kolumny, z których każda reprezentuje określone informacje o pliku.
I wiele więcej.
Notatka: Szczegółowe informacje o kolumnach można znaleźć w instrukcji LSOF.
Jak pokazać procesy, które otworzyły plik
LSOF zapewnia nam opcje, które pomagają nam filtrować wyjście, aby pokazać tylko procesy, które otworzyły określony plik.
Na przykład, aby zobaczyć plik, który otworzył plik /bin /bash, użyj polecenia jako:
sudo lsof /bin /bash
To da ci wyjście, jak pokazano poniżej:
Polecenie Użytkownika PID Typ FD Rozmiar urządzenia/Nazwa węzła OFF
KSMtuned 1025 root TXT Reg 253,0 1150704 428303/usr/bin/bash
Bash 2968 Centos TXT Reg 253,0 1150704 428303/USR/BIN/BASH
Bash 3075 Centos TXT Reg 253,0 1150704 428303/USR/BIN/BASH
Jak pokazuj pliki otwarte przez określonego użytkownika
Możemy również filtrować wyjście, aby pokazać pliki otwarte przez określonego użytkownika. Robimy to za pomocą flagi -u, a następnie nazwy użytkownika jako:
sudo lsof -u centos
To da ci wyjście, jak pokazano poniżej:
Jak wyświetlać pliki otwarte przez określony proces
Załóżmy, że chcemy wyświetlić wszystkie pliki otwarte przez określony proces? W tym celu możemy użyć PID procesu do filtrowania wyjścia.
Na przykład poniższe polecenie pokazuje pliki otwarte przez Bash.
sudo lsof -p 3075
To da ci tylko pliki otwarte przez SystemD, jak pokazano:
Jak wyświetlać pliki otwarte w katalogu
Aby otworzyć pliki w określonym katalogu, możemy przekazać opcję +D, a następnie ścieżkę katalogu.
Na przykład wymieniaj otwarte pliki w katalogu /etc.
sudo lsof +d /etc
Poniżej znajduje się wyjście:
Jak pokazać połączenie sieciowe
Ponieważ wszystko w systemie Linux to plik, możemy uzyskać pliki sieciowe, takie jak pliki lub połączenia TCP.
Możemy użyć polecenia:
sudo lsof -i tcp
To da ci połączenia TCP w systemie.
Możesz także filtrować według określonego portu za pomocą polecenia pokazanego poniżej:
sudo lsof -i: 22
To da ci wyjście, jak pokazano poniżej:
Jak ciągle wyświetlać pliki
LSOF zapewnia nam tryb do zapętlania wyjścia co kilka sekund. Pozwala to na ciągłe monitorowanie plików otwartych przez proces lub użytkownik.
Ta opcja wymaga jednak ręcznego zakończenia procesu.
Na przykład poniższe polecenie stale monitoruje pliki otwarte na porcie 22:
sudo lsof -r -i: 22
Jak widać, w trzeciej pętli LSOF łapie ustalone połączenie z serwerem na SSH.
Wniosek
LSOF to niezwykle przydatne narzędzie. Umożliwia monitorowanie plików krytycznych, a także monitorowanie użytkowników i przetwarza pliki otwierające. Może to być niezwykle przydatne podczas rozwiązywania problemów lub szukania złośliwych prób systemu.
Jak pokazano w tym samouczku, przy użyciu różnych przykładów i metod, możesz połączyć funkcjonalność dostarczoną przez narzędzie LSOF do niestandardowego monitorowania.
Dziękuję za przeczytanie i udostępnienie! Mam nadzieję, że nauczyłeś się czegoś nowego!