U sustavu se cijelo vrijeme izvodi niz procesa koji pristupaju različitim datotekama sustava. Te datoteke mogu biti disk datoteke, skripte, mrežne utičnice, uređaji, imenovane cijevi i druge. Korištenjem "lsof" moguće je izvesti puno stvari, poput otklanjanja pogrešaka. Također je vrlo korisno za administratore sustava da shvate kojim datotekama se pristupa kojim procesima. Jedan od najkorisnijih scenarija koji sam pronašao je kada želite demontirati datotečni sustav, ali mu se još uvijek pristupa.
Bez daljnjega, krenimo s “lsof”! Pretpostavljam da je na vašem trenutnom UNIX / Linux sustavu već instaliran "lsof".
Mjesto
koji također
Ovo izvještava o punoj putanji naredbe, u ovom slučaju, "lsof".
Verzija "lsof"također -v
Ovo će izvijestiti detaljne informacije o verziji "lsof", uključujući datum izrade binarne datoteke, verziju kompajlera, zastavice kompajlera i druge.
Osnovna upotreba "lsof"
Pokrenite "lsof" sam.
Također
Ovo izvještava o VELIKOM popisu svih datoteka kojima sustav pristupa u trenutku pokretanja naredbe.
Iako su sva polja sama po sebi objašnjena, uglavnom se zbunite oko stupaca "FD" i "TYPE" i njihovih vrijednosti. Provjerimo ih.
FD: Kratica od "Deskriptor datoteke". Dolazi do sljedećih vrijednosti.
- cwd: Trenutni radni direktorij
- rtd: Korijenski direktorij
- txt: Tekst programa (podaci, kod i drugi)
- mem: Datoteka mapirana u memoriju
- pogreška: pogreška u FD informacijama
- mmap: Uređaj mapiran u memoriju
- ltx: Zajednički tekst knjižnice (podaci i kod)
- m86: DOS mapirana datoteka
Postoje i druge vrijednosti koje ćete primijetiti u stupcu, poput "1u", a zatim u, r, w itd. vrijednost. Što to znači?
- r: Pristup za čitanje
- w: Pristup pisanju
- u: Pristup za čitanje i pisanje
- - : Nepoznati način rada i sadrži znak zaključavanja
- ": Način je nepoznat i nema znaka zaključavanja
TIP: Opisuje vrstu datoteke i njezinu identifikaciju. Vrijednosti su sljedeće.
- DIR: Imenik
- CHR: Posebna datoteka za znakove
- REG: Uobičajena datoteka
- FIFO: Prvi ulaz, prvi izlaz
Korisnički otvorene datoteke
Linux je briljantna višekorisnička platforma. Više korisnika može istovremeno pristupati sustavu i izvoditi radnje za koje imaju dozvolu.
Da biste provjerili datoteke kojima određeni korisnik pristupa, pokrenite sljedeću naredbu.
lsof -u
Međutim, za provjeru korisnika višeg ranga, "lsof" će trebati privilegiju "superuser".
sudo lsof -u
Što kažete na provjeru svih naredbi i datoteka kojima određeni korisnik pristupa? Pokrenite sljedeću.
lsof -i -u
Opet, za korisnike s višim rangom, „lsof“ će trebati privilegiju „superkorisnika“.
sudo lsof -i -u
Pokrenuti procesi specifični za port
Da biste saznali sve procese koji trenutno koriste određeni port, nazovite "lsof" s oznakom "-i", nakon čega slijede podaci o protokolu i luci.
Također -i<46>:
Na primjer, da biste provjerili sve programe koji trenutno pristupaju priključku 80 preko TCP / IP protokola, pokrenite sljedeću naredbu.
Također -i TCP: 80
Ova se metoda također može koristiti za prikaz svih procesa koji koriste priključke u određenom rasponu, na primjer 1 do 1000. Struktura naredbi slična je kao i prije, s malo čarolije na dijelu broja porta.
Isto tako -i TCP: 1-1000
Procesi specifični za protokol
Evo 2 primjera koji prikazuju procese koji se trenutno koriste protokolima IPv4 i IPv6.
lsof -i 4lsof -i 6
Popis mrežnih veza
Sljedeća naredba izvijestit će sve mrežne veze s trenutnog sustava.
Također -i
Isključujući s ^
Da, možemo izuzeti određene korisnike, priključke, FD i druge pomoću znaka "^". Sve što morate učiniti je koristiti ga oprezno kako ne biste zabrljali cijeli izlaz.
U ovom primjeru, izuzmimo sve procese iz korisničkog "korijena".
lsof -u ^ korijen
Postoje i drugi načini korištenja ovog mehanizma za isključivanje s "lsof", na primjer, sa zastavicama poput "-c", "-d" itd. Ne podržavaju sve zastave ovaj mehanizam. Zbog toga preporučujem isprobati demonstraciju ove metode s bilo kojom zastavicom prije nego što je implementirate u neke skripte.
PID pretraživanje
PID je važno svojstvo bilo kojeg pokrenutog procesa u sustavu. Omogućuje preciznije određivanje određenog procesa. Naziv procesa nije od velike pomoći u mnogim situacijama jer isti binarni sustav može stvoriti svoje kopije i paralelno izvoditi različite zadatke.
Ako ne znate kako dobiti PID procesa, samo upotrijebite "ps" da biste popisali sve pokrenute procese i filtrirali izlaz pomoću "grep" s imenom procesa i / ili naredbama.
ps -A
Sada, izvedite filtriranje pomoću "grep".
ps -A | grep
Sada provjerite kojim datotekama PID pristupa.
Također -pPopis otvorenih datoteka za određeni uređaj
Funkcionalnost "lsof" nije ograničena samo na ove funkcije. Rezultat "lsof" možete filtrirati i prema osnovi uređaja. U tu svrhu naredba će izgledati otprilike ovako.
Također
Ova je naredba izuzetno korisna za otkrivanje svih pokrenutih procesa s informacijama o njihovom vlasniku koji pristupaju određenom datotečnom sustavu. Ako imate problema s demontažom datotečnog sustava, ovo je najbolji način.
TakođerNavedite otvorene datoteke u direktoriju
Slično prethodnom primjeru, samo proslijedite stazu direktorija na “lsof” da biste saznali pristupa li joj bilo koji proces.
Napomena: "lsof" će rekurzivno provjeravati direktorij, tako da može potrajati.
= također + D
Bonus: prekinuti sve korisničke aktivnosti
Budite izuzetno oprezni s ovim dijelom jer može jednostavno zabrljati sve što korisnik radi. Sljedeća naredba će ubiti sve pokrenute procese korisnika.
sudo ubiti -9 'lsof -t -uZnačajke "lsof" ne zaustavljaju se ovdje. Ovdje spomenuti oni su koji će nam trebati svakodnevno. Postoji mnoštvo drugih funkcionalnosti "lsof" koje mogu dobro doći (naravno, u određenim slučajevima).
Sve dostupne značajke i njihovu upotrebu potražite na stranicama s informacijama i stranicama "lsof".
čovjek takođerinfo također
Također -?
Uživati!