Számos folyamat fut folyamatosan a rendszerben, és hozzáférnek a rendszer különböző fájljaihoz. Ezek a fájlok lehetnek lemezfájlok, szkriptek, hálózati aljzatok, eszközök, megnevezett csövek és mások. Az „lsof” használatával sok minden elvégezhető, például hibakeresés. A rendszergazdák számára is nagyon hasznos kitalálni, hogy milyen fájlokhoz milyen folyamatok férnek hozzá. Az egyik leghasznosabb forgatókönyv, amikor egy fájlrendszert leválasztani készül, de még mindig elérhető.
Minden további nélkül kezdjük az "lsof" -val! Feltételezem, hogy a jelenlegi UNIX / Linux rendszeredben már telepítve van az “lsof”.
Elhelyezkedés
amely lsof
Ez a parancs teljes elérési útját jelenti, ebben az esetben „lsof”.
„Lsof” verziólsof -v
Ez az „lsof” részletes verzióinformációit közli, beleértve a bináris, a fordítói verzió, a fordítójelzők és más verziók gyártási dátumát.
Alapvető „lsof” használat
Futtassa az „lsof” programot önmagában.
lsof
Ez jelent egy NAGY listát azokról a fájlokról, amelyekhez a rendszer a parancs futtatásakor hozzáfér.
Míg az összes mező nem magyarázható, többnyire megzavarodik az „FD” és a „TÍPUS” oszlopokkal és azok értékeivel. Nézzük meg őket.
FD: A „File Descriptor” rövidítése. A következő értékekkel áll elő.
- cwd: Jelenlegi munkakönyvtár
- rtd: Gyökérkönyvtár
- txt: Programszöveg (adatok, kód és mások)
- mem: Memória-leképezett fájl
- err: FD információs hiba
- mmap: Memória-leképezett eszköz
- ltx: Megosztott könyvtár szövege (adatok és kód)
- m86: DOS Merge leképezett fájl
Vannak más értékek is, amelyeket észrevesz az oszlopban, például „1u”, majd u, r, w stb. érték. Mit jelentenek ezek?
- r: Olvasási hozzáférés
- w: Írási hozzáférés
- u: olvasási és írási hozzáférés
- - : Ismeretlen mód, és tartalmaz egy zár karaktert
- ": A mód ismeretlen, és nincs zárolási karakter
TÍPUS: Leírja a fájltípust és annak azonosítását. Az értékek a következők.
- DIR: Könyvtár
- CHR: Karakterspecifikus fájl
- REG: Rendes fájl
- FIFO: Először be, először ki
Felhasználóspecifikus megnyitott fájlok
A Linux ragyogó többfelhasználós platform. Több felhasználó egyszerre férhet hozzá a rendszerhez, és hajthatja végre azokat a műveleteket, amelyekre engedélyük van.
A fájlok megtekintéséhez, amelyekhez egy bizonyos felhasználó hozzáfér, futtassa a következő parancsot.
lsof -u
A magasabb besorolású felhasználók ellenőrzéséhez azonban az „lsof” -nak „superuser” jogosultságra lesz szüksége.
sudo lsof -u
Mi lenne, ha megnéznéd az összes olyan parancsot és fájlt, amelyhez egy bizonyos felhasználó hozzáfér? Futtassa a következőt.
lsof -i -u
Ismét a magasabb rangú felhasználók számára az „lsof” -nak szüksége lesz a „superuser” privilégiumra.
sudo lsof -i -u
Port-specifikus futási folyamatok
Azon folyamatok megismeréséhez, amelyek jelenleg egy adott portot használnak, hívja az „lsof” szót az „-i” jelzővel, majd a protokoll és a port információival.
lsof -i<46>:
Például, hogy ellenőrizze az összes olyan programot, amely jelenleg hozzáfér a 80-as porthoz TCP / IP protokollon keresztül, futtassa a következő parancsot.
lsof -i TCP: 80
Ezzel a módszerrel fel lehet mutatni az összes olyan folyamatot is, amelyek portokat használnak egy bizonyos tartományon belül, például 1 és 1000 között. A parancsstruktúra hasonló a korábbihoz, egy kis varázslattal a portszám részén.
lsof -i TCP: 1-1000
Protokoll-specifikus folyamatok
Íme 2 példa azokra a folyamatokra, amelyek jelenleg az IPv4 és IPv6 protokollokat használják.
lsof -i 4lsof -i 6
Hálózati kapcsolatok felsorolása
A következő parancs az aktuális rendszer összes hálózati kapcsolatát jelenti.
lsof -i
Kizárva a ^ -vel
Igen, kizárhatunk bizonyos felhasználókat, portokat, FD-ket és másokat a „^” karakter használatával. Csak annyit kell tennie, hogy óvatosan használja, nehogy elrontja a teljes kimenetet.
Ebben a példában zárjuk ki az összes folyamatot a „root” felhasználóból.
lsof -u ^ gyökér
Vannak más módszerek is ennek a kizáró mechanizmusnak az „lsof” használatára, például a „-c”, „-d” stb. Nem minden zászló támogatja ezt a mechanizmust. Ezért azt javaslom, hogy próbáljon ki egy demót ezzel a módszerrel bármilyen zászlóval, mielőtt néhány szkriptbe végrehajtaná.
PID keresés
A PID a rendszer bármely futó folyamatának fontos tulajdonsága. Lehetővé teszi egy adott folyamat finomabb pontos meghatározását. A folyamatnév sok esetben nem túl hasznos, mivel ugyanaz a bináris másolatokat készíthet magáról, és párhuzamosan különböző feladatokat hajthat végre.
Ha nem tudja, hogyan szerezze be a folyamat PID-jét, akkor egyszerűen használja a „ps” billentyűt az összes futó folyamat felsorolásához, és szűrje ki a kimenetet a „grep” segítségével a folyamat nevével és / vagy parancsokkal.
ps -A
Most végezze el a szűrést a „grep” segítségével.
ps -A | grep
Most ellenőrizze, hogy a PID milyen fájlokat ér el.
lsof -pMegnyitott fájlok felsorolása egy adott eszközhöz
Az „lsof” funkciói nem csak ezekre a funkciókra korlátozódnak. Az „lsof” eredményét eszközalaponként is szűrheti. Ebből a célból a parancs valami ilyesmit fog kinézni.
lsof
Ez a parancs rendkívül hasznos, hogy megtudja az összes futó folyamatot, a tulajdonos információikkal elérve egy adott fájlrendszert. Ha problémái vannak a fájlrendszer leválasztásával, ez a legjobb módszer.
lsofSorolja fel a megnyitott fájlokat egy könyvtár alatt
Az előző példához hasonlóan csak a könyvtár elérési útját adja át az „lsof” -nak, hogy megtudja, elér-e valamilyen folyamat.
Megjegyzés: Az „lsof” rekurzív módon ellenőrzi a könyvtárat, így időbe telhet.
= lsof + D
Bónusz: az összes felhasználói tevékenység megszüntetése
Legyen rendkívül óvatos ezzel a résszel, mivel egyszerűen elrontja mindazt, amit a felhasználó csinál. A következő parancs megöli a felhasználó összes futó folyamatát.
sudo kill -9 'lsof -t -uAz „lsof” tulajdonságai nem csak itt állnak meg. Az itt említettekre van szükség a mindennapokban leginkább. Az „lsof” -nak rengeteg más funkciója hasznos lehet (természetesen bizonyos esetekben).
Az összes elérhető funkcióval és használatukkal kapcsolatban nézze meg az “lsof” kézikönyvét és információs oldalát.
ember lsofinfo lsof
lsof -?
Élvezd!