Kaip patikrinti atidarytus failus „Linux“

How Check Open Files Linux



Galbūt susidūrėte su posakiu: „Viskas yra failas„ Linux “. Nors tai nėra visiškai tiesa, ji turi tam tikrą tiesą.

„Linux“ ir „Unix“ tipo sistemose viskas yra kaip failas. Tai reiškia, kad „Unix“ sistemos ištekliams priskiriamas failų aprašas, įskaitant saugojimo įrenginius, tinklo lizdus, ​​procesus ir kt.







Failų aprašas yra unikalus numeris, identifikuojantis failą ir kitus įvesties/išvesties įrenginius. Jame aprašomi ištekliai ir kaip branduolys juos pasiekia. Pagalvokite apie tai kaip apie vartus į branduolio abstrakcijos aparatūros išteklius.



Deja, failų aprašų sąvoka nepatenka į šios pamokos taikymo sritį; Norėdami sužinoti daugiau, peržiūrėkite žemiau pateiktą nuorodą:



https://en.wikipedia.org/wiki/File_descriptor





Tai reiškia, kad „Unix“ ir į „Unix“ panašios sistemos, tokios kaip „Linux“, tokius failus naudoja daug. Kaip „Linux“ energijos vartotojui, neįtikėtinai naudinga pamatyti atidarytus failus ir procesą bei juos naudojančius vartotojus.

Šioje pamokoje daugiausia dėmesio bus skiriama būdams, kaip peržiūrėti atidarytus failus ir kuris procesas ar vartotojas yra atsakingas.



Išankstiniai reikalavimai

Prieš pradėdami įsitikinkite, kad turite:

  • „Linux“ sistema
  • Vartotojas, turintis root arba sudo privilegijas

Jei turite tai, pradėkime:

LSOF programa

„Victor A Abell“ sukurtas sąrašas atidarytų failų arba trumpai „lsof“ yra komandų eilutės įrankis, leidžiantis peržiūrėti atidarytus failus ir juos atidarusius procesus ar vartotojus.

„Lsof“ įrankis yra prieinamas pagrindiniuose „Linux“ platinimuose; tačiau gali būti, kad jis neįdiegtas, todėl gali tekti jį įdiegti rankiniu būdu.

Kaip įdiegti „lsof“ „Debian“/„Ubuntu“

Norėdami jį įdiegti „Debian“, naudokite komandą:

sudo apt-get atnaujinimas

sudo apt-get installlof-ir

Kaip įdiegti „REHL/CentOS“

Norėdami įdiegti „REHL“ ir „CentOS“, naudokite komandą:

sudodnf atnaujinimas

sudodnfdiegtilof

Kaip įdiegti „Arch“

„Arch“ iškvieskite paketų tvarkyklę naudodami komandą:

sudoPacmanas-Jo

sudoPacmanas-Slof

Kaip įdiegti „Fedora“

„Fedora“ naudokite komandą:

sudo yum įdiegtilof

Įdiegę ir atnaujinę „lsof“ programą, galime pradėti ja naudotis.

Pagrindinis naudojimas

Norėdami naudoti įrankį lsof, įveskite komandą:

sudolof

Kai atliksite aukščiau nurodytą komandą, lsof išmes daug informacijos, kaip parodyta žemiau:

Aukščiau išvestyje rodomi visi procesų atidaryti failai. Išvestyje yra įvairių stulpelių, kurių kiekvienas nurodo konkrečią informaciją apie failą.

  • Stulpelis COMMAND - rodo proceso, kuriame naudojamas failas, pavadinimą.
  • PID - rodo proceso, naudojant failą, proceso identifikatorių.
  • TID - Rodo proceso užduoties ID (gijas).
  • TASKCMD - Pateikite užduoties komandos pavadinimą.
  • VARTOTOJAS - Proceso savininkas.
  • FD - Rodo failo aprašymo numerį. Taip procesai naudoja failą; Galimos šios stulpelio išvesties parinktys:
  • cwd - dabartinis darbo katalogas.
  • meme -su atmintimi susietas failas
  • pd - tėvų katalogas
  • jld - kalėjimo katalogas
  • ltx - bendras bibliotekos tekstas
  • rtd - šakninis katalogas.
  • txt - programos kodas ir duomenys
  • NS - branduolio pėdsakų failas.
  • klysti - Failo aprašymo informacijos klaida
  • mmp -Atminties susietas įrenginys.
  • TYPE - Rodo su failu susijusio mazgo tipą, pvz .:
  • Unix - „Unix“ domeno lizdui.
  • TAU - reiškia katalogą
  • REG - įprasta byla
  • CHR - žymi specialiųjų simbolių bylą.
  • NUORODA - simbolinis nuorodų failas
  • BLK - Blokuoti specialų failą
  • internetas - interneto domeno lizdas
  • FIFO - pavadintas vamzdis („First In First Out“ failas)
  • Vamzdis - vamzdžiams

Ir daug daugiau.

  • ĮRENGINIAI - Rodo įrenginių numerius, atskirtus kableliais, specialių simbolių failo, specialiojo, įprasto, katalogo ir NFS failų tvarka.
  • DYDIS/IŠJUNGTA - rodo failo pr failo poslinkio dydį baitais.
  • NODE - rodo vietinio failo mazgo numerį, interneto protokolo tipo tipą ir kt.
  • VARDAS - rodo prijungimo taško pavadinimą ir fs, kuriame yra failas.

Pastaba: Išsamesnės informacijos apie stulpelius ieškokite „lsof“ vadove.

Kaip parodyti procesus, kurie atidarė failą

Lsof suteikia mums parinktis, kurios padeda filtruoti išvestį, kad būtų rodomi tik procesai, kurie atidarė konkretų failą.

Pavyzdžiui, norėdami pamatyti failą, kuris atidarė failą /bin /bash, naudokite komandą kaip:

sudolof/esu/mušti

Tai suteiks jums išvestį, kaip parodyta žemiau:

COMMAND PID USER FD TYPE DEVICE SIZE/IŠJUNGTAS mazgo pavadinimas

ksmtuned1025šakninis txt REG253,0 1150704 428303 /usr/esu/mušti

mušti 2968centos txt REG253,0 1150704 428303 /usr/esu/mušti

mušti 3075centos txt REG253,0 1150704 428303 /usr/esu/mušti

Kaip rodyti konkretaus vartotojo atidarytus failus

Taip pat galime filtruoti išvestį, kad būtų rodomi konkretaus vartotojo atidaryti failai. Mes tai darome naudodami vėliavą -u, po kurios eina vartotojo vardas:

sudolof-ušimtai

Tai suteiks jums išvestį, kaip parodyta žemiau:

Kaip parodyti failus, atidarytus konkrečiu procesu

Tarkime, norime peržiūrėti visus failus, atidarytus konkrečiu procesu? Tam mes galime naudoti proceso PID, kad filtruotume išvestį.

Pavyzdžiui, žemiau pateikta komanda rodo failus, atidarytus „bash“.

sudolof-p 3075

Taip gausite tik failus, kuriuos atidarė systemd, kaip parodyta:

Kaip parodyti kataloge atidarytus failus

Norėdami, kad failai būtų atidaryti konkrečiame kataloge, galime perduoti +D parinktį ir katalogo kelią.

Pavyzdžiui, išvardykite atidarytus failus kataloge /etc.

sudolsof +D/ir kt

Žemiau yra išvestis šiam tikslui:

Kaip parodyti tinklo ryšį

Kadangi viskas sistemoje „Linux“ yra failas, galime gauti tinklo failus, tokius kaip TCP failai ar jungtys.

Mes galime naudoti komandą:

sudolof-iTCP

Tai suteiks jums TCP ryšius sistemoje.

Taip pat galite filtruoti pagal konkretų prievadą naudodami toliau pateiktą komandą:

sudolof-i:22

Tai suteiks jums išvestį, kaip parodyta žemiau:

Kaip nuolat rodyti failus

Lsof suteikia mums režimą išvesties ciklui kartoti kas kelias sekundes. Tai leidžia nuolat stebėti proceso ar vartotojo atidarytus failus.

Tačiau ši parinktis reikalauja, kad procesas būtų nutrauktas rankiniu būdu.

Pavyzdžiui, žemiau pateikta komanda nuolat stebi failus, atidarytus 22 prievade:

sudolsof -r-i:22

Kaip matote, trečioje kilpoje lsof užfiksuoja užmegztą ryšį su SSH serveriu.

Išvada

Lsof yra neįtikėtinai naudinga priemonė. Tai leidžia stebėti svarbius failus, taip pat stebėti vartotojus ir procesus, atidarančius failus. Tai gali būti nepaprastai naudinga, kai reikia šalinti triktis ar ieškoti kenkėjiškų sistemos bandymų.

Kaip parodyta šioje pamokoje, naudodami įvairius pavyzdžius ir metodus, galite suderinti „lsof“ įrankio teikiamas funkcijas pasirinktiniam stebėjimui.

Dėkojame, kad skaitote ir dalinatės! Tikiuosi, kad sužinojote ką nors naujo!