V sistemu se ves čas izvajajo številni procesi, ki dostopajo do različnih datotek sistema. Te datoteke so lahko diskovne datoteke, skripti, omrežne vtičnice, naprave, imenovane cevi in druge. Z uporabo »lsof« lahko izvedete veliko stvari, na primer odpravljanje napak. Prav tako je koristno za sistemske skrbnike, da ugotovijo, do katerih datotek se dostopa s kakšnimi procesi. Eden izmed najbolj uporabnih scenarijev, ki sem ga našel, je, ko nameravate demontirati datotečni sistem, vendar je še vedno dostopen do njega.
Brez nadaljnjih besed, začnimo z “lsof”! Predvidevam, da je v vašem trenutnem sistemu UNIX / Linux že nameščen »lsof«.
Lokacija
kar tudi
To poroča o celotni poti ukaza, v tem primeru "lsof".
"Lsof" različicalsof -v
To bo poročalo o poglobljenih informacijah o različici "lsof", vključno z datumom izdelave binarne različice, različice prevajalnika, zastavic prevajalnika in drugih.
Osnovna uporaba lsof
Zaženite “lsof” sam.
tudi
To sporoča VELIK seznam vseh datotek, do katerih sistem dostopa v trenutku izvajanja ukaza.
Čeprav so vsa polja samoumevna, se večinoma zmedete glede stolpcev »FD« in »TYPE« ter njihovih vrednosti. Preverimo jih.
FD: Okrajšava »Deskriptor datoteke«. Pride do naslednjih vrednosti.
- cwd: trenutni delovni imenik
- rtd: Korenski imenik
- txt: besedilo programa (podatki, koda in drugo)
- mem: preslikana datoteka s pomnilnikom
- napaka: napaka pri informacijah o FD
- mmap: Naprava, preslikana v pomnilnik
- ltx: Skupno besedilo knjižnice (podatki in koda)
- m86: Preslikana datoteka DOS Merge
V stolpcu so tudi druge vrednosti, na primer »1u«, ki jim sledijo u, r, w itd. vrednost. Kaj to pomeni?
- r: dostop za branje
- w: Dostop do pisanja
- u: Dostop za branje in pisanje
- - : Neznan način in vsebuje znak za zaklepanje
- ": Način ni znan in znak za zaklepanje ni
TIP: Opisuje vrsto datoteke in njeno identifikacijo. Vrednosti so naslednje.
- DIR: Imenik
- CHR: Posebna datoteka za znake
- REG: Redna datoteka
- FIFO: Prvi vstop, prvi izstop
Uporabniško odprte datoteke
Linux je briljantna več uporabniška platforma. Več uporabnikov lahko istočasno dostopa do sistema in izvaja operacije, za katere imajo dovoljenje.
Če želite preveriti datoteke, do katerih dostopa določen uporabnik, zaženite naslednji ukaz.
lsof -u
Za odjavo uporabnikov z višjim rangom pa bo lsof potreboval privilegij "super uporabnik".
sudo lsof -u
Kaj pa preveriti vse ukaze in datoteke, ki jih ima določen uporabnik? Zaženite naslednjo.
lsof -i -u
Za uporabnike z višjim rangom bo lsof potreboval privilegij „super uporabnik“.
sudo lsof -i -u
Programi, ki delujejo za vrata
Če želite izvedeti vse procese, ki trenutno uporabljajo določena vrata, pokličite "lsof" z zastavico "-i", ki ji sledijo informacije o protokolu in vratih.
tudi -i<46>:
Če želite na primer preveriti vse programe, ki trenutno dostopajo do vrat 80 prek protokola TCP / IP, zaženite naslednji ukaz.
lsof -i TCP: 80
Ta metoda se lahko uporablja tudi za prikaz vseh procesov, ki uporabljajo vrata v določenem obsegu, na primer od 1 do 1000. Struktura ukaza je podobna prejšnji z malo čarovnije na delu številke vrat.
lsof -i TCP: 1-1000
Postopki, specifični za protokol
Tu sta 2 primera, ki prikazujeta procese, ki trenutno uporabljajo protokola IPv4 in IPv6.
lsof -i 4lsof -i 6
Seznam omrežnih povezav
Naslednji ukaz bo poročal o vseh omrežnih povezavah iz trenutnega sistema.
tudi -i
Razen z ^
Da, lahko izključimo določenega uporabnika, vrata, FD in druge z uporabo znaka "^". Vse, kar morate storiti, je, da ga uporabljate previdno, da ne boste zmotili celotnega izhoda.
V tem primeru izključimo vse procese iz uporabniškega "korena".
lsof -u ^ koren
Obstajajo tudi drugi načini uporabe tega izključujočega mehanizma z “lsof”, na primer z zastavicami, kot so “-c”, “-d” itd. Tega mehanizma ne podpirajo vse zastave. Zato priporočam, da preizkusite predstavitev s to metodo s katero koli zastavico, preden jo implementirate v nekatere skripte.
Iskanje PID
PID je pomembna lastnost katerega koli tekočega procesa v sistemu. Omogoča natančnejše določanje določenega procesa. Ime procesa ni v veliko primerih koristno, saj lahko isti binarnik ustvari svoje kopije in vzporedno izvaja različne naloge.
Če ne veste, kako pridobiti PID procesa, uporabite "ps" za seznam vseh tekočih procesov in filtriranje izhoda z uporabo "grep" z imenom procesa in / ali ukazi.
ps -A
Zdaj izvedite filtriranje z uporabo "grep".
ps -A | grep
Zdaj preverite, do katerih datotek dostopa PID.
lsof -pSeznam odprtih datotek za določeno napravo
Funkcija “lsof” ni omejena samo na te funkcije. Rezultat "lsof" lahko filtrirate tudi glede na napravo. V ta namen bo ukaz videti nekako tako.
tudi
Ta ukaz je nadvse koristen, če želite izvedeti vse tekoče procese z informacijami o lastnikih, ki dostopajo do določenega datotečnega sistema. Če imate težave z demontiranjem datotečnega sistema, je to najboljši način.
tudiSeznam odprtih datotek v imeniku
Podobno kot v prejšnjem primeru, samo posredujte pot do imenika “lsof”, da ugotovite, ali kateri proces dostopa do njega.
Opomba: “lsof” bo imenik preverjal rekurzivno, zato lahko traja nekaj časa.
= lsof + D
Bonus: prekinite vse uporabniške dejavnosti
Bodite previdni pri tem delu, saj lahko preprosto zamoči vse, kar uporabnik počne. Naslednji ukaz bo ubil vse tekoče procese uporabnika.
sudo kill -9 'lsof -t -uZnačilnosti “lsof” se ne ustavijo le pri tem. Tu omenjeni so tisti, ki jih bomo vsak dan najbolj potrebovali. Obstaja veliko drugih funkcij "lsof", ki so vam lahko v pomoč (seveda v posebnih primerih).
Vse razpoložljive funkcije in njihovo uporabo si oglejte na strani z informacijami o uporabnikih in informacijah v "lsof".
človek tudifinfo lsof
tudi -?
Uživajte!