Järjestelmässä on jatkuvasti käynnissä useita prosesseja, jotka käyttävät järjestelmän eri tiedostoja. Nämä tiedostot voivat olla levytiedostoja, komentosarjoja, verkkoliittimiä, laitteita, nimettyjä putkia ja muita. Käyttämällä “lsofia” on mahdollista suorittaa monia asioita, kuten virheenkorjaus. Järjestelmänvalvojille on myös varsin hyödyllistä selvittää, mitä tiedostoja millä prosesseilla käytetään. Yksi hyödyllisimmistä skenaarioista, jotka olen löytänyt, on, kun aiot irrottaa tiedostojärjestelmän, mutta sitä käytetään edelleen.
Aloitetaan pikemminkin, aloitetaan "lsof"! Oletan, että nykyisessä UNIX / Linux-järjestelmässäsi on jo "lsof" asennettuna.
Sijainti
mikä lsof
Tämä raportoi komennon koko polun, tässä tapauksessa "lsof".
“Lsof” -versiolsof -v
Tämä raportoi "lsof": n perusteelliset versiotiedot, mukaan lukien binäärin, kääntäjän version, kääntäjän liput ja muut.
Perus "lsof" käyttö
Suorita “lsof” itse.
lsof
Tämä raportoi suuren listan kaikista tiedostoista, joita järjestelmä käyttää komennon suorittamisen hetkellä.
Vaikka kaikki kentät ovat itsestään selviä, sekoittuvat enimmäkseen FD- ja TYPE-sarakkeisiin ja niiden arvoihin. Tarkistetaan heidät.
FD: Tiedostokuvaajan lyhenne. Se tuottaa seuraavat arvot.
- cwd: Nykyinen työkansio
- rtd: Juurihakemisto
- txt: Ohjelman teksti (tiedot, koodi ja muut)
- mem: Muistikartoitettu tiedosto
- err: FD-tietovirhe
- mmap: Muistikartoitettu laite
- ltx: Jaetun kirjaston teksti (tiedot ja koodi)
- m86: DOS Yhdistä kartoitettu tiedosto
Sarakkeessa on myös muita arvoja, kuten "1u", jota seuraa u, r, w jne. arvo. Mitä ne tarkoittavat?
- r: Lukuoikeus
- w: Kirjoitusoikeus
- u: Luku- ja kirjoitusoikeus
- - : Tuntematon tila ja se sisältää lukitusmerkin
- ": Tila on tuntematon eikä siinä ole lukitusmerkkiä
TYPE: Kuvaa tiedostotyypin ja sen tunnisteen. Arvot ovat seuraavat.
- DIR: Hakemisto
- CHR: Merkkikohtainen tiedosto
- REG: Säännöllinen tiedosto
- FIFO: Ensimmäinen sisään, ensin ulos
Käyttäjäkohtaiset avatut tiedostot
Linux on loistava monen käyttäjän foorumi. Useat käyttäjät voivat käyttää järjestelmää samanaikaisesti ja suorittaa toimintoja, joihin heillä on lupa.
Voit tarkistaa tiedostot, joita tietty käyttäjä käyttää, suorittamalla seuraava komento.
lsof -u
"Lsof" tarvitsee kuitenkin "pääkäyttäjä" -oikeuden tarkistaakseen käyttäjät, joilla on korkeampi sijoitus.
sudo lsof -u
Entä tarkistaa kaikki komennot ja tiedostot, joita tietty käyttäjä käyttää? Suorita seuraava.
lsof -i -u
Jälleen korkeamman tason käyttäjille "lsof" tarvitsee "pääkäyttäjä" -oikeuden.
sudo lsof -i -u
Porttikohtaiset käynnissä olevat prosessit
Saadaksesi selville kaikki prosessit, jotka käyttävät tiettyä porttia, soita ”lsof” -merkillä ”-i”, jota seuraa protokolla ja porttitiedot.
lsof -i<46>:
Esimerkiksi tarkistaa kaikki ohjelmat, jotka tällä hetkellä käyttävät porttia 80 TCP / IP-protokollan kautta, suorittamalla seuraava komento.
lsof -i TCP: 80
Tätä menetelmää voidaan käyttää myös näyttämään kaikki prosessit, jotka käyttävät portteja tietyllä alueella, esimerkiksi 1 - 1000. Komentorakenne on samanlainen kuin aiemmin, ja portin numero-osassa on vähän taikaa.
lsof -i TCP: 1-1000
Protokollakohtaiset prosessit
Tässä on 2 esimerkkiä prosesseista, jotka käyttävät tällä hetkellä IPv4- ja IPv6-protokollia.
lsof -i 4lsof -i 6
Luettele verkkoyhteydet
Seuraava komento raportoi kaikki verkkoyhteydet nykyisestä järjestelmästä.
lsof -i
Lukuun ottamatta ^
Kyllä, voimme sulkea pois tietyn käyttäjän, portin, FD: n ja muut käyttämällä merkkiä ”^”. Sinun tarvitsee vain käyttää sitä varoen, jotta et sekoita koko lähtöä.
Poistetaan tässä esimerkissä kaikki prosessit käyttäjän "juurista".
lsof -u ^ -juuri
On olemassa muita tapoja käyttää tätä poissulkemismekanismia "lsof": n kanssa, esimerkiksi lippujen kanssa, kuten "-c", "-d" jne. Kaikki liput eivät tue tätä mekanismia. Siksi suosittelen kokeilemaan demoa tällä menetelmällä millä tahansa lipulla ennen sen toteuttamista joihinkin skripteihin.
PID-haku
PID on tärkeä ominaisuus kaikille järjestelmän käynnissä oleville prosesseille. Sen avulla voidaan tarkentaa tiettyä prosessia. Prosessin nimi ei ole kovin hyödyllinen monissa tilanteissa, koska sama binääri voi luoda kopioita itsestään ja suorittaa erilaisia tehtäviä samanaikaisesti.
Jos et tiedä kuinka saada prosessin PID, käytä vain "ps" -luetteloa kaikkien käynnissä olevien prosessien luetteloon ja suodata tulos käyttämällä grep-prosessorin nimeä ja / tai komentoja.
ps -A
Suorita nyt suodatus käyttämällä "grep".
ps -A | grep
Tarkista nyt, mitä tiedostoja PID käyttää.
lsof -pLuettelossa olevien tiedostojen luettelo tietylle laitteelle
”Lsof” -toiminto ei rajoitu vain näihin toimintoihin. Voit myös suodattaa “lsof” -arvion myös laitekohtaisesti. Tätä tarkoitusta varten komento näyttää tältä.
lsof
Tämä komento on erittäin hyödyllinen selvittääkseen kaikki käynnissä olevat prosessit, joiden omistajatiedot käyttävät tiettyä tiedostojärjestelmää. Jos sinulla on vaikeuksia purkaa tiedostojärjestelmää, tämä on paras tapa edetä.
lsofLuettelo avatuista tiedostoista hakemistoon
Kuten edellisessä esimerkissä, välitä vain hakemistopolku "lsof": lle saadaksesi selville, onko jokin prosessi sitä käyttämässä.
Huomaa: ”lsof” tarkistaa hakemiston rekursiivisesti, joten se voi viedä aikaa.
= lsof + D
Bonus: lopeta kaikki käyttäjän toimet
Ole erittäin varovainen tämän osan suhteen, koska se voi yksinkertaisesti sekoittaa kaiken käyttäjän tekemän toiminnan. Seuraava komento tappaa kaikki käyttäjän käynnissä olevat prosessit.
sudo kill -9 'lsof -t -u"Lsof" -ominaisuudet eivät ole vain tässä. Tässä mainitut ovat niitä, joita tarvitsemme eniten päivittäin. "Lsof": lla on paljon muita toimintoja, jotka voivat olla hyödyllisiä (tietyissä tapauksissa, tietysti).
Katso kaikki saatavilla olevat ominaisuudet ja niiden käyttö lsofin man- ja infosivuilta.
mies lsofinfo lsof
lsof -?
Nauttia!