Johdatus Lsofiin

Johdatus Lsofiin

Linuxissa monia objekteja pidetään tiedostoina riippumatta siitä, onko objekti todella tiedosto, laite, hakemisto vai pistorasia. Tiedoston listaus on helppoa, sitä varten on sisäänrakennettu komentotulkki ls. Mutta entä jos käyttäjä haluaisi nähdä, mitkä tiedostot verkkopalvelinprosessi avaa tällä hetkellä? Tai jos käyttäjä halusi selvittää, mitkä tiedostot avataan tietyssä hakemistossa? Siellä se lsoftulee peliin. Kuvittele lsofa, lsjohon on lisätty "avoimia tiedostoja".

Huomaa, että vaikka BSD:illä on erilainen apuohjelma tähän työhön fstat, useilla muilla Unix-makuilla (esimerkiksi Solaris) on myös lsof. Vaihtoehdot ja liput ovat erilaisia ​​muilla alustoilla, samoin kuin tulosteen ulkoasu, mutta yleensä tämän artikkelin tietämyksen pitäisi päteä myös niihin.

Katsotaanpa ensin lsoftulosteen muotoa ja sen lukemista. Tavallinen tulos lsofilman parametreja muistuttaisi seuraavaa. Tätä on leikattu luettavuuden vuoksi.

COMMAND    PID  TID       USER   FD      TYPE             DEVICE  SIZE/OFF       NODE NAME
init         1            root  cwd       DIR              254,1      4096          2 /
init         1            root  rtd       DIR              254,1      4096          2 /
init         1            root  txt       REG              254,1     36992    7077928 /sbin/init
init         1            root  mem       REG              254,1     14768    7340043 /lib/x86_64-linux-gnu/libdl-2.13.so
init         1            root  mem       REG              254,1   1603600    7340040 /lib/x86_64-linux-gnu/libc-2.13.so
init         1            root  mem       REG              254,1    126232    7340078 /lib/x86_64-linux-gnu/libselinux.so.1
init         1            root  mem       REG              254,1    261184    7340083 /lib/x86_64-linux-gnu/libsepol.so.1
init         1            root  mem       REG              254,1    136936    7340037 /lib/x86_64-linux-gnu/ld-2.13.so
init         1            root   10u     FIFO               0,14       0t0       4781 /run/initctl

Nämä sarakkeet tarkoittavat seuraavaa:

  • KOMENTO - Prosessi, johon avoin tiedosto kuuluu, tässä esimerkissä kaikki liittyy init.
  • PID - Mainitun prosessin prosessin tunnusnumero.
  • KÄYTTÄJÄ - Käyttäjä, jonka alaisuudessa prosessi suoritetaan. Sillä initse on melkein aina root.
  • FD - Tiedoston tiedostokuvaaja, yleisin on:
    • cwd- Nykyinen työhakemisto (saatat huomata samankaltaisuuden pwdkomennon kanssa, joka tulostaa nykyisen työhakemiston).
    • rtd - Prosessin juurihakemisto.
    • txt- A text file, tämä voi tarkoittaa joko prosessiin liittyvää asetustiedostoa tai prosessiin liittyvää (tai siihen kuuluvaa) "lähdekoodia".
    • mem - Ns. "muistikartoitettu tiedosto", joka tarkoittaa virtuaalimuistin (lue: RAM) segmenttiä, joka on määritetty tiedostoon.
    • Numero - numero edustaa todellista tiedoston kuvaajaa, numeron jälkeinen merkki on tila, jossa tiedosto avataan:
    • r - Lukea.
    • w - Kirjoita.
    • u - Lue ja kirjoita.
  • TYYPPI - Määrittää tiedoston todellisen tyypin, yleisimmät ovat:
    • REG - Tavallinen tiedosto.
    • DIR - Hakemisto.
    • FIFO - Ensimmäinen sisällä ensimmäinen ulkona.
  • DEVICE – tiedoston sisältävän laitteen pää- ja sivunumero.
  • KOKO – Tiedoston koko tavuina.
  • NODE - Tiedoston inodien numero.
  • NAME – tiedoston nimi.

Tämä saattaa olla tällä hetkellä hieman ylivoimaista, mutta jos työskentelet lsofmuutaman kerran, se uppoaa nopeasti aivoihisi.

Kuten edellä mainittiin, tuotos lsofon lyhennetty tässä. Ilman argumentteja tai suodattimia lsoftuottaa satoja riviä, jotka vain hämmentävät sinua.

On olemassa kaksi peruslähestymistapaa tämän ongelman ratkaisemiseksi:

  • Rajaa lsoftuloksia käyttämällä yhtä tai useampaa komentorivin vaihtoehtoa.
  • Ohjaa ulostulo esimerkiksi grep.

Vaikka jälkimmäinen vaihtoehto saattaa kuulostaa mukavammalta, koska sinun ei tarvitse muistaa lsofkomentorivin valintoja, se ei yleensä ole yhtä joustava ja tehokas, joten pysymme ensimmäisessä.

Kuvittele, että haluat avata tiedoston suosikkitekstieditorillasi ja että tekstieditori kertoo, että se voidaan avata vain luku -tilassa, koska toinen ohjelma käyttää sitä jo. lsofauttaa sinua selvittämään, kuka on tekijä:

lsof /path/to/your/file

Tämä tuottaa seuraavanlaisen tulosteen:

COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF    NODE NAME
vim 2679 root    5w   REG  254,1   121525 6035622 /root/lsof.txt

Ilmeisesti unohdit sulkea ja vanhemman istunnon! Hyvin samankaltainen ongelma ilmenee, kun yrität irrottaa NFS-osuuden ja umountkerrot, että se ei onnistu, koska jokin vielä käyttää liitettyä kansiota. Jälleen kerran, lsofvoi auttaa sinua tunnistamaan syyllinen:

lsof +D /path/to/your/directory/

Huomaa perässä oleva kauttaviiva, se on tärkeää. Muussa tapauksessa lsofoletetaan, että tarkoitat tavallista tiedostoa. Älä hämmenny +lipun edessä - lsofsisältää niin paljon komentorivivaihtoehtoja, joita se tarvitsee +yleisempien lisäksi -. Tulos näyttäisi tältä:

COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF      NODE NAME
mocp    5637  music    4r   REG   0,19 10147719 102367344 /home/Music/RMS_GNU_SONG.ogg

Tämä tarkoittaa, että käyttäjälle kuuluva prosessi mocpPID-tunnuksella on avannut tiedoston nimeltä . Prosessin sulkemisen jälkeen on kuitenkin edelleen ongelma - NFS-taltiota ei voida irrottaa.5637musicRMS_GNU_SONG.ogg

lsofon -clippu, joka näyttää avatut tiedostot mielivaltaisen prosessinimen.

lsof -c mocp

Siitä saataisiin tältä näyttävä tulos:

mocp    9383  music    4r   REG   0,19 10147719 102367344 /home/Music/ANOTHER_RMS_GNU_SONG.ogg

Tässä esimerkissä on toinen mocpajo- ilmentymä, joka estää sinua poistamasta jakoa. Prosessin sulkemisen jälkeen haluat varmistaa, että käyttäjällä musicei ole muita mahdollisesti ongelmallisia tiedostoja auki. lsofon -ulippu, joka näyttää tietyn käyttäjän avaamat tiedostot. Muista, että tiedosto ei aina ole vain tavallinen tiedosto kiintolevylläsi!

lsof -u music

Voit myös ohittaa useita pilkuilla erotettuja käyttäjiä:

lsof -u music,moremusic

Tärkeä huomautus oletustoimintoja lsof: tulokset ovat OR -pohjainen, mikä tarkoittaa, että näet tiedoston tuloksia avattujen prosesseja, jotka omistaa joko käyttäjä musictai käyttäjän moremusic. Jos haluat nähdä tuloksia, jotka vastaavat molempien käyttäjien omistamia prosesseja, sinun on välitettävä lippu -a:

lsof -au music, moremusic

Koska molemmat käyttäjät ovat ryhmässä musicusers, voit myös listata tiedostoja ryhmän perusteella:

lsof -g musicusers

Voit myös yhdistää komentorivin liput:

lsof -u music,moremusic -c mocp

or

lsof -u ^music +D /home/Music

Viimeiselle riville lisäsimme toisen erikoislipun - ^, joka tarkoittaa loogista EI . Jos tulos on tyhjä kyseisen komennon suorittamisen jälkeen, irrotus todennäköisesti onnistuu.

Aiemmissa esimerkeissä tarkastelimme enimmäkseen tavallisia tiedostoja. Entä pistorasiat ja verkkoliitännät?

Kaikkien nykyisten verkkoyhteyksien luettelossa lsofon -ilippu:

lsof -i

Tulos näyttää samalta kuin mitä olemme nähneet tähän mennessä...

COMMAND    PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
owncloud  3509  myuser   25u  IPv4  44946      0t0  TCP strix.local:34217->myserver.vultr.com:https (ESTABLISHED)
firefox   3612  myuser   82u  IPv4  49663      0t0  TCP strix.local:43897->we-in-f100.1e100.net:https (ESTABLISHED)
ssh       3784  myuser    3u  IPv4  10437      0t0  TCP strix.local:51416->someserver.in:ssh (ESTABLISHED)
wget      4140  myuser    3w  IPv4  45586      0t0  TCP strix.local:54460->media.ccc.de:http (CLOSE_WAIT)

... lukuun ottamatta yhtä eroa: tiedostonimien tai hakemistojen sijaan sarake NAMEnäyttää nyt yhteystiedot. Jokainen liitäntä koostuu seuraavista osista:

  • pöytäkirja.
  • Paikallinen isäntänimi.
  • Yhteyden lähdeportti.
  • Kohteen DNS-nimi.
  • Kohdeportti.
  • Yhteyden tila.

Kuten monissa muissakin työkaluissa, voit kieltäytyä DNS-nimien ja porttien ( -nja -Pvastaavasti ) selvittämisestä. Lippu -iottaa lisäparametreja. Voit määrittää, näytetäänkö tcp, udptai icmpyhteyksiä tai tietyissä satamissa:

lsof -i :25
or
lsof -i :smtp

Jälleen parametrit voidaan yhdistää. Seuraava esimerkki...

lsof -i tcp:80

... näyttää vain TCP-yhteydet portilla 80. Voit myös yhdistää sen vaihtoehtoihin, jotka tunnet "klassisista" tiedostoista:

lsof -a -u httpd -i tcp

Tämä näyttää kaikki käyttäjän avaamat TCP - yhteydet httpd. Huomaa -alippu, joka muuttaa oletuskäyttäytymistä lsof(kuten aiemmin mainittiin). Kuten useimmissa komentorivityökaluissa, voit mennä erittäin syvälle. Seuraavassa näytetään vain TCP-yhteydet, joiden tila on "PERUSTU":

lsof -i -s TCP:ESTABLISHED

Tässä vaiheessa sinulla pitäisi olla perusymmärrys siitä, miten se lsoftoimii, sekä joitain yleisiä käyttötapauksia. Katso lisätietoa järjestelmäsi mansivulta lsof.


Asenna Plesk CentOS 7:ään

Asenna Plesk CentOS 7:ään

Käytätkö erilaista järjestelmää? Plesk on patentoitu verkkoisäntäohjauspaneeli, jonka avulla käyttäjät voivat hallita henkilökohtaisia ​​ja/tai asiakkaidensa verkkosivustoja, tietokantoja

Asenna Cacti Debian Jessielle

Asenna Cacti Debian Jessielle

Johdanto Cacti on avoimen lähdekoodin seuranta- ja grafiikkatyökalu, joka perustuu täysin RRD-tietoihin. Cactin kautta voit seurata lähes minkä tahansa tyyppisiä laitteita

Asenna Lets Encrypt SSL One-Click WordPress -sovellukseen

Asenna Lets Encrypt SSL One-Click WordPress -sovellukseen

Johdanto Lets Encrypt on varmenteen myöntäjäpalvelu, joka tarjoaa ilmaisia ​​TLS/SSL-varmenteita. Certbot yksinkertaistaa asennusprosessia,

Tekkit Classic -palvelimen määrittäminen Ubuntu 16.10:ssä

Tekkit Classic -palvelimen määrittäminen Ubuntu 16.10:ssä

Käytätkö erilaista järjestelmää? Mikä on Tekkit Classic? Tekkit Classic on modack peliin, jonka kaikki tuntevat ja rakastavat; Minecraft. Se sisältää joitain ver

Asenna iRedMail Debian Wheezylle

Asenna iRedMail Debian Wheezylle

Käytätkö erilaista järjestelmää? Tämä opetusohjelma näyttää kuinka asennat ryhmätyöohjelman iRedMail uuteen Debian Wheezy -asennukseen. Sinun pitäisi käyttää tarjoilua

Jekyll-blogin luominen Ubuntuun 16.04

Jekyll-blogin luominen Ubuntuun 16.04

Käytätkö erilaista järjestelmää? Jekyll on loistava vaihtoehto WordPressille bloggaamiseen tai sisällön jakamiseen. Se ei vaadi tietokantoja ja se on erittäin helppoa i

Valvomattomien päivitysten asentaminen Debian 9:ssä (Stretch)

Valvomattomien päivitysten asentaminen Debian 9:ssä (Stretch)

Käytätkö erilaista järjestelmää? Jos ostat Debian-palvelimen, sinulla pitäisi aina olla viimeisimmät tietoturvakorjaukset ja -päivitykset riippumatta siitä, oletko nukkumassa vai ei.

PHP 7.0:n tai PHP 7.1:n asentaminen ja määrittäminen Ubuntu 16.04:ssä

PHP 7.0:n tai PHP 7.1:n asentaminen ja määrittäminen Ubuntu 16.04:ssä

PHP ja siihen liittyvät paketit ovat yleisimmin käytettyjä komponentteja verkkopalvelimen käyttöönotossa. Tässä artikkelissa opimme asentamaan PHP 7.0 tai PHP 7.1 o

Kuinka asentaa Squid Proxy CentOS:ään

Kuinka asentaa Squid Proxy CentOS:ään

Squid on suosittu, ilmainen Linux-ohjelma, jonka avulla voit luoda edelleenlähetysverkkovälityspalvelimen. Tässä oppaassa näet, kuinka Squid asennetaan CentOS:ään kääntääksesi sinut

Lighttpd:n (LLMP Stack) asentaminen CentOS 6:een

Lighttpd:n (LLMP Stack) asentaminen CentOS 6:een

Johdanto Lighttpd on Apachen haarukka, jonka tarkoituksena on olla paljon vähemmän resurssiintensiivinen. Se on kevyt, tästä syystä sen nimi, ja on melko yksinkertainen käyttää. Asenna

Kolme ilmaista palvelinohjauspaneelia (pikaasennus)

Kolme ilmaista palvelinohjauspaneelia (pikaasennus)

1. Virtualmin/Webmin Virtualmin on tehokas ja joustava web-hosting-ohjauspaneeli Linux- ja UNIX-järjestelmille, joka perustuu tunnettuun avoimen lähdekoodin verkkotietokantaan

Yii-sovelluksen määrittäminen Ubuntuun 14.04

Yii-sovelluksen määrittäminen Ubuntuun 14.04

Yii on PHP-kehys, jonka avulla voit kehittää sovelluksia nopeammin ja helpommin. Yiin asentaminen Ubuntuun on yksinkertaista, kuten opit tarkalleen

Näytön käyttö Ubuntu 14.04:ssä

Näytön käyttö Ubuntu 14.04:ssä

Screen on sovellus, joka mahdollistaa usean pääteistuntojen käytön yhdessä ikkunassa. Tämän avulla voit simuloida useita pääteikkunoita, joissa se ma

Asenna oma DNS-palvelin Debianissa/Ubuntussa

Asenna oma DNS-palvelin Debianissa/Ubuntussa

Tämä opetusohjelma selittää, kuinka DNS-palvelin määritetään Bind9:n avulla Debianissa tai Ubuntussa. Korvaa koko artikkelin ajan verkkotunnuksesi-nimi.com vastaavasti. klo th

Logrotaten käyttäminen lokitiedostojen hallintaan

Logrotaten käyttäminen lokitiedostojen hallintaan

Johdanto Logrotate on Linux-apuohjelma, joka yksinkertaistaa lokitiedostojen hallintaa. Se toimii yleensä kerran päivässä cron-työn kautta ja hallitsee lokipohjaa

Staattisen verkon ja IPv6:n määrittäminen CentOS 7:ssä

Staattisen verkon ja IPv6:n määrittäminen CentOS 7:ssä

VULTR on äskettäin tehnyt muutoksia heidän omiinsa, ja kaiken pitäisi nyt toimia hyvin heti, kun NetworkManager on käytössä. Jos haluat poistaa käytöstä

Icinga2:n muokkaaminen käyttämään pää/asiakasmallia CentOS 6:ssa tai CentOS 7:ssä

Icinga2:n muokkaaminen käyttämään pää/asiakasmallia CentOS 6:ssa tai CentOS 7:ssä

Icinga2 on tehokas valvontajärjestelmä, ja master-client-mallissa käytettynä se voi korvata NRPE-pohjaisten valvontatarkastusten tarpeen. Pääasiakas

Asenna Red5 Media Server Ubuntu 16.04:ään

Asenna Red5 Media Server Ubuntu 16.04:ään

Käytätkö erilaista järjestelmää? Red5 on Java-kielellä toteutettu avoimen lähdekoodin mediapalvelin, jonka avulla voit ajaa Flash-monikäyttäjäsovelluksia, kuten suoratoistoa.

Käännä ja asenna Nginx PageSpeed-moduulilla Debian 8:ssa

Käännä ja asenna Nginx PageSpeed-moduulilla Debian 8:ssa

Tässä artikkelissa näemme, kuinka Nginx-päälinja voidaan kääntää ja asentaa virallisista Nginx-lähteistä PageSpeed-moduulilla, jonka avulla voit

Apache Cassandra 3.11.x:n asentaminen Ubuntu 16.04 LTS:ään

Apache Cassandra 3.11.x:n asentaminen Ubuntu 16.04 LTS:ään

Käytätkö erilaista järjestelmää? Apache Cassandra on ilmainen ja avoimen lähdekoodin NoSQL-tietokannan hallintajärjestelmä, joka on suunniteltu tarjoamaan skaalautuvuutta, hig.

Koneiden nousu: tekoälyn todelliset sovellukset

Koneiden nousu: tekoälyn todelliset sovellukset

Tekoäly ei ole tulevaisuudessa, se tässä nykyisyydessä Tässä blogissa Lue kuinka tekoälysovellukset ovat vaikuttaneet eri sektoreihin.

DDOS-hyökkäykset: lyhyt katsaus

DDOS-hyökkäykset: lyhyt katsaus

Oletko myös DDOS-hyökkäysten uhri ja hämmentynyt ehkäisymenetelmistä? Lue tämä artikkeli ratkaistaksesi kysymyksesi.

Oletko koskaan miettinyt, kuinka hakkerit ansaitsevat rahaa?

Oletko koskaan miettinyt, kuinka hakkerit ansaitsevat rahaa?

Olet ehkä kuullut, että hakkerit ansaitsevat paljon rahaa, mutta oletko koskaan miettinyt, kuinka he ansaitsevat tuollaista rahaa? keskustellaan.

Googlen vallankumouksellisia keksintöjä, jotka helpottavat elämääsi.

Googlen vallankumouksellisia keksintöjä, jotka helpottavat elämääsi.

Haluatko nähdä Googlen vallankumouksellisia keksintöjä ja kuinka nämä keksinnöt muuttivat jokaisen ihmisen elämää nykyään? Lue sitten blogia nähdäksesi Googlen keksinnöt.

Essential perjantai: Mitä tekoäly-ohjatuille autoille tapahtui?

Essential perjantai: Mitä tekoäly-ohjatuille autoille tapahtui?

Konsepti itseohjautuvista autoista lähteä tielle tekoälyn avulla on ollut haaveena jo jonkin aikaa. Mutta useista lupauksista huolimatta niitä ei näy missään. Lue tämä blogi saadaksesi lisätietoja…

Teknologinen singulaarisuus: ihmissivilisaation kaukainen tulevaisuus?

Teknologinen singulaarisuus: ihmissivilisaation kaukainen tulevaisuus?

Kun tiede kehittyy nopeasti ja ottaa haltuunsa suuren osan ponnisteluistamme, myös riskit altistaa itsemme selittämättömälle singulariteetille kasvavat. Lue, mitä singulaarisuus voisi tarkoittaa meille.

Tietojen tallennuksen evoluutio – Infografiikka

Tietojen tallennuksen evoluutio – Infografiikka

Tietojen säilytystavat ovat kehittyneet mahdollisesti Datan syntymästä lähtien. Tämä blogi käsittelee tiedon tallennuksen kehitystä infografian pohjalta.

Big Datan referenssiarkkitehtuurikerrosten toiminnot

Big Datan referenssiarkkitehtuurikerrosten toiminnot

Blogista saat tietää Big Data -arkkitehtuurin eri kerroksista ja niiden toiminnoista yksinkertaisimmalla tavalla.

6 uskomatonta etua älykkäiden kotilaitteiden käyttämisestä elämässämme

6 uskomatonta etua älykkäiden kotilaitteiden käyttämisestä elämässämme

Tässä digitaalisessa maailmassa kodin älylaitteista on tullut tärkeä osa elämää. Tässä on muutamia älykkäiden kodin laitteiden hämmästyttäviä etuja, joiden avulla ne tekevät elämästämme elämisen arvoista ja yksinkertaisempaa.

macOS Catalina 10.15.4 -täydennyspäivitys aiheuttaa enemmän ongelmia kuin ratkaiseminen

macOS Catalina 10.15.4 -täydennyspäivitys aiheuttaa enemmän ongelmia kuin ratkaiseminen

Apple julkaisi äskettäin macOS Catalina 10.15.4 -lisäpäivityksen ongelmien korjaamiseksi, mutta näyttää siltä, ​​että päivitys aiheuttaa lisää ongelmia, jotka johtavat mac-koneiden tiilikaamiseen. Lue tämä artikkeli saadaksesi lisätietoja