Sistemoje nuolat veikia daugybė procesų, pasiekiančių skirtingus sistemos failus. Šie failai gali būti disko failai, scenarijai, tinklo lizdai, įrenginiai, pavadinti vamzdžiai ir kt. Naudojant „lsof“, galima atlikti daugybę dalykų, pavyzdžiui, derinti. Sistemos administratoriams taip pat labai naudinga išsiaiškinti, prie kokių failų prieinami kokie procesai. Vienas naudingiausių scenarijų, kurį radau, kai ketinate atjungti failų sistemą, bet vis tiek prie jos prieinama.
Nesikuklindami pradėkime nuo „lsof“! Darau prielaidą, kad dabartinėje jūsų UNIX / Linux sistemoje jau įdiegta „lsof“.
Vieta
kuris lsof
Tai praneša apie visą komandos kelią, šiuo atveju „lsof“.
„Lsof“ versijalsof -v
Tai pateiks išsamią „lsof“ versijos informaciją, įskaitant dvejetainės versijos, kompiliatoriaus versijos, kompiliatoriaus žymų ir kitos versijos sukūrimo datą.
Pagrindinis „lsof“ naudojimas
Paleiskite „lsof“ pats.
lsof
Tai praneša apie BIG visų failų, prie kurių sistema naudojasi komandos vykdymo metu, sąrašą.
Nors visi laukai yra savaime suprantami, dažniausiai pasimeta dėl stulpelių „FD“ ir „TYPE“ bei jų reikšmių. Patikrinkime juos.
FD: „Failo deskriptoriaus“ santrumpa. Jis pateikia šias vertybes.
- cwd: dabartinis darbo katalogas
- RTD: šakninis katalogas
- txt: programos tekstas (duomenys, kodas ir kt.)
- mem: Atmintyje susietas failas
- klaida: FD informacijos klaida
- mmap: atmintyje susietas įrenginys
- ltx: Bendros bibliotekos tekstas (duomenys ir kodas)
- m86: DOS sulieti susietą failą
Taip pat yra kitų verčių, kurias pastebėsite stulpelyje, pvz., „1u“, po kurios eina u, r, w ir kt. vertė. Ką tai reiškia?
- r: skaitymo prieiga
- w: Rašymo prieiga
- u: skaitymo ir rašymo prieiga
- - : Nežinomas režimas ir jame yra užrakto simbolis
- ": Režimas nežinomas ir nėra užrakto simbolio
TYPE: apibūdina failo tipą ir jo identifikaciją. Vertės yra tokios.
- DIR: katalogas
- CHR: Specifinis simbolių failas
- REG: įprastas failas
- FIFO: Pirmas, pirmas
Konkretiems vartotojams atidaryti failai
„Linux“ yra puiki kelių vartotojų platforma. Keli vartotojai vienu metu gali naudotis sistema ir atlikti operacijas, kurioms jie turi leidimą.
Norėdami patikrinti failus, prie kurių prieina tam tikras vartotojas, vykdykite šią komandą.
lsof -u
Tačiau norint patikrinti aukštesnio rango vartotojus, „lsof“ reikės privilegijos „supernaudotojui“.
sudo lsof -u
Kaip patikrinti visas komandas ir failus, kuriuos pasiekia tam tikras vartotojas? Vykdykite šį vieną.
lsof -i -u
Vėlgi, vartotojams, turintiems aukštesnį rangą, „lsof“ reikės „supernaudotojo“ privilegijos.
sudo lsof -i -u
Konkretaus uosto veikimo procesai
Norėdami sužinoti visus procesus, kurie šiuo metu naudoja tam tikrą prievadą, paskambinkite „lsof“ su „-i“ vėliava, po kurios eina protokolas ir uosto informacija.
lsof -i<46>:
Pvz., Norėdami patikrinti visas programas, šiuo metu prisijungiančias prie 80 prievado per TCP / IP protokolą, vykdykite šią komandą.
lsof -i TCP: 80
Šis metodas taip pat gali būti naudojamas parodyti visus procesus, kurie naudoja uostus tam tikrame diapazone, pavyzdžiui, nuo 1 iki 1000. Komandų struktūra yra panaši į ankstesnę su šiek tiek magijos uosto numerio dalyje.
lsof -i TCP: 1-1000
Konkretūs protokolai
Čia yra 2 pavyzdžiai, rodantys procesus, kurie šiuo metu naudoja IPv4 ir IPv6 protokolus.
lsof -i 4lsof -i 6
Tinklo jungčių sąrašas
Ši komanda praneš apie visus tinklo ryšius iš dabartinės sistemos.
lsof -i
Išskyrus su ^
Taip, galime išskirti konkretų vartotoją, prievadą, FD ir kitus naudodami simbolį „^“. Viskas, ką jums reikia padaryti, tai naudoti atsargiai, kad nesugadintumėte visos išvesties.
Šiame pavyzdyje išskirkime visus procesus iš vartotojo „root“.
lsof -u ^ šaknis
Yra ir kitų būdų, kaip naudoti šį išskyrimo mechanizmą su „lsof“, pavyzdžiui, su tokiomis vėliavomis kaip „-c“, „-d“ ir kt. Ne visos vėliavos palaiko šį mechanizmą. Štai kodėl aš rekomenduoju išbandyti šio metodo demonstraciją su bet kokia vėliava prieš diegiant ją į kai kuriuos scenarijus.
PID paieška
PID yra svarbi bet kurio sistemos proceso ypatybė. Tai leidžia tiksliau nustatyti tam tikrą procesą. Proceso pavadinimas nėra labai naudingas daugeliu atvejų, nes tas pats dvejetainis failas gali sukurti savo kopijas ir atlikti skirtingas užduotis.
Jei nežinote, kaip gauti proceso PID, tiesiog naudokite „ps“, kad išvardytumėte visus vykstančius procesus ir filtruotumėte išvestį naudodami „grep“ su proceso pavadinimu ir (arba) komandomis.
ps -A
Dabar atlikite filtravimą naudodami „grep“.
ps -A | grep
Dabar patikrinkite, kokius failus naudoja PID.
lsof -pKonkretaus įrenginio atidarytų failų sąrašas
„Lsof“ funkcionalumas neapsiriboja tik šiomis funkcijomis. Taip pat galite filtruoti „lsof“ rezultatus pagal įrenginio pagrindą. Šiuo tikslu komanda atrodys maždaug taip.
lsof
Ši komanda yra labai naudinga norint sužinoti visus vykstančius procesus su jų savininkų informacija, pasiekiančia tam tikrą failų sistemą. Jei kyla problemų atjungiant failų sistemą, tai geriausias būdas.
lsofPateikite atidarytus failus kataloge
Panašiai kaip ankstesniame pavyzdyje, tiesiog perduokite katalogo kelią „lsof“, kad sužinotumėte, ar prie jo prisijungia koks nors procesas.
Pastaba: „lsof“ tikrins katalogą rekursyviai, todėl tai gali užtrukti.
= lsof + D
Premija: nutraukite visą vartotojo veiklą
Būkite labai atsargūs dėl šios dalies, nes ji gali paprasčiausiai sujaukti viską, ką daro vartotojas. Ši komanda sunaikins visus vykdomus vartotojo procesus.
sudo nužudyti -9 'lsof -t -u„Lsof“ savybės čia neapsiriboja. Čia paminėti yra tie, kurių mums labiausiai prireiks kasdien. Yra daugybė kitų „lsof“ funkcijų, kurios gali būti naudingos (žinoma, tam tikrais atvejais).
Norėdami sužinoti apie visas galimas funkcijas ir jų naudojimą, apsilankykite „lsof“ žmogaus ir informacijos puslapiuose.
vyras lsofinfo lsof
lsof -?
Mėgautis!