Kako preveriti odprte datoteke v Linuxu

How Check Open Files Linux



Morda ste naleteli na rek: Vse je datoteka v Linuxu. Čeprav to ni povsem res, vseeno vsebuje niz resnic.

V sistemih, podobnih Linuxu in Unixu, je vse kot datoteka. To pomeni, da se virom v sistemu Unix dodeli opisnik datotek, vključno s pomnilniškimi napravami, omrežnimi vtičnicami, procesi itd.







Deskriptor datoteke je edinstvena številka, ki identificira datoteko in druge vhodno/izhodne naprave. Opisuje vire in način, kako jedro do njih dostopa. Zamislite si to kot prehod do virov strojne opreme za abstrakcijo jedra.



Na žalost koncept deskriptorjev datotek presega obseg te vadnice; Če želite izvedeti več, preberite spodnjo povezavo:



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





To pomeni, da Unix in Unixu podobni sistemi, kot je Linux, veliko uporabljajo take datoteke. Kot izkušen uporabnik Linuxa je videti odprte datoteke in postopek ter uporabnike, ki jih uporabljajo, neverjetno koristno.

Ta vadnica se bo osredotočila na načine za ogled odprtih datotek in na to, kateri proces ali uporabnik je odgovoren.



Predpogoji

Preden začnemo, se prepričajte, da imate:

  • Linux sistem
  • Uporabnik s korenskimi ali sudo pravicami

Če imate te, začnimo:

Pripomoček LSOF

Ustvaril Victor A Abell, List open files ali na kratko lsof je pripomoček za ukazno vrstico, ki nam omogoča ogled odprtih datotek in procesov ali uporabnikov, ki so jih odprli.

Pripomoček lsof je na voljo v večjih distribucijah Linuxa; lahko pa se vam zdi, da ni nameščen, zato ga boste morda morali namestiti ročno.

Kako namestiti lsof na Debian/Ubuntu

Če ga želite namestiti v Debian, uporabite ukaz:

sudo apt-get posodobitev

sudo apt-get installlsof-in

Kako namestiti na REHL/CentOS

Za namestitev na REHL in CentOS uporabite ukaz:

sudoposodobitev dnf

sudodnfnamestitelsof

Kako namestiti na Arch

V Archu pokličite upravitelja paketov z ukazom:

sudopacman-Njegov

sudopacman-Slsof

Kako namestiti na Fedoro

V Fedori uporabite ukaz:

sudo yum installlsof

Ko namestite in posodobite pripomoček lsof, ga lahko začnemo uporabljati.

Osnovna uporaba

Če želite uporabiti orodje lsof, vnesite ukaz:

sudolsof

Ko izvedete zgornji ukaz, bo lsof izpisal veliko informacij, kot je prikazano spodaj:

Zgornji izhod prikazuje vse datoteke, ki jih odprejo procesi. Izhod ima različne stolpce, od katerih vsak predstavlja posebne informacije o datoteki.

  • Stolpec UKAZ - prikazuje ime procesa, ki uporablja datoteko.
  • PID - prikaže identifikator procesa procesa, ki uporablja datoteko.
  • TID - Prikaže ID opravila (niti) procesa.
  • TASKCMD - Predstavlja ime ukaza ukaza.
  • UPORABNIK - Lastnik postopka.
  • FD - Prikaže številko deskriptorja datoteke. Tako procesi uporabljajo datoteko; možnosti, ki so na voljo v tem izhodu stolpca, vključujejo:
  • cwd - trenutni delovni imenik.
  • meme -datoteka, preslikana v pomnilnik
  • pd - nadrejeni imenik
  • jld - imenik zapora
  • ltx - besedilo knjižnice v skupni rabi
  • rtd - korenski imenik.
  • txt - programska koda in podatki
  • NS - datoteka za sledenje jedra.
  • napaka - Napaka v informacijah deskriptorja datotek
  • mmp -Naprava, preslikana v pomnilnik.
  • TIP - Prikaže vrsto vozlišča, povezanega z datoteko, na primer:
  • Unix - za Unix domensko vtičnico.
  • TEBI - predstavlja imenik
  • REG - ki predstavlja običajno datoteko
  • CHR - predstavlja datoteko s posebnimi znaki.
  • POVEZAVA - datoteka s simbolično povezavo
  • BLK - Blokiraj posebno datoteko
  • Internet - vtičnica internetne domene
  • FIFO - imenovana cev (datoteka First In First Out)
  • CEV - za cevi

In še veliko več.

  • NAPRAVE - Prikaže številke naprav, ločene z vejicami v vrstnem redu datoteke s posebnimi znaki, blokiranje posebnih, običajnih, imeniških datotek in datotek NFS.
  • VELIKOST/IZKLOP - prikazuje velikost odmika datoteke pr v datoteki v bajtih.
  • NODE - prikazuje številko vozlišča lokalne datoteke, vrsto internetnega protokola itd.
  • NAME - prikazuje ime točke vstavljanja in fs, na kateri se nahaja datoteka.

Opomba: Za podrobnejše informacije o stolpcih si oglejte priročnik lsof.

Kako prikazati procese, ki so odprli datoteko

Lsof nam ponuja možnosti, ki nam pomagajo filtrirati izhodne podatke in prikazati samo procese, ki so odprli določeno datoteko.

Če želite na primer videti datoteko, ki je odprla datoteko /bin /bash, uporabite ukaz kot:

sudolsof/zjutraj/bash

Tako boste dobili rezultat, kot je prikazano spodaj:

UKAZ PID UPORABNIKA FD TIP NAPRAVE/IZKLOPI IME VODE

ksmtuned1025root txt REG253,0 1150704 428303 /usr/zjutraj/bash

bash 2968centos txt REG253,0 1150704 428303 /usr/zjutraj/bash

bash 3075centos txt REG253,0 1150704 428303 /usr/zjutraj/bash

Kako prikazati datoteke, ki jih je odprl določen uporabnik

Izhod lahko tudi filtriramo, da prikažemo datoteke, ki jih je odprl določen uporabnik. To naredimo z zastavico -u, ki ji sledi uporabniško ime, kot:

sudolsof-ustotine

Tako boste dobili rezultat, kot je prikazano spodaj:

Kako prikazati datoteke, odprte s posebnim postopkom

Recimo, da si želimo ogledati vse datoteke, ki jih odpre določen postopek? V ta namen lahko uporabimo PID procesa za filtriranje izhoda.

Spodnji ukaz na primer prikazuje datoteke, ki jih odpre bash.

sudolsof-str 3075

Tako boste dobili samo datoteke, ki jih odpre systemd, kot je prikazano:

Kako prikazati datoteke, odprte v imeniku

Če želite odpreti datoteke v določenem imeniku, lahko posredujemo možnost +D, ki ji sledi pot imenika.

Na primer, navedite odprte datoteke v imeniku /etc.

sudolsof +D/itd

Spodaj je rezultat za to:

Kako prikazati omrežno povezavo

Ker je vse v Linuxu datoteka, lahko dobimo omrežne datoteke, kot so datoteke TCP ali povezave.

Lahko uporabimo ukaz:

sudolsof-jazTCP

To vam bo omogočilo povezave TCP v sistemu.

Prav tako lahko filtrirate po določenih vratih s spodnjim ukazom:

sudolsof-jaz:22

Tako boste dobili rezultat, kot je prikazano spodaj:

Kako neprestano prikazovati datoteke

Lsof nam ponuja način, da vsakih nekaj sekund zaokrožimo izhod. To vam omogoča neprekinjeno spremljanje datotek, ki jih odpre proces ali uporabnik.

Ta možnost pa zahteva, da postopek zaključite ročno.

Spodnji ukaz na primer stalno spremlja datoteke, odprte na vratih 22:

sudolsof -r-jaz:22

Kot lahko vidite, v tretji zanki lsof ujame vzpostavljeno povezavo s strežnikom na SSH.

Zaključek

Lsof je neverjetno uporaben pripomoček. Omogoča vam spremljanje kritičnih datotek ter spremljanje uporabnikov in procesov, ki odpirajo datoteke. To je lahko zelo koristno pri odpravljanju težav ali iskanju zlonamernih poskusov v sistemu.

Kot je prikazano v tej vadnici, lahko z različnimi primeri in metodami združite funkcije, ki jih ponuja orodje lsof za spremljanje po meri.

Hvala za branje in deljenje! Upam, da ste se naučili kaj novega!