Linux-työkalu lsof mah­dol­lis­taa jär­jes­tel­män nopean valvonnan ja ongelmien ha­vait­se­mi­sen. Se tarjoaa luettelon avoimista tie­dos­tois­ta, ja sen avulla voit optimoida sen omiin tar­pei­sii­si suo­dat­ti­mien ja asetusten avulla.

Mikä on Linuxin lsof?

Linux-jär­jes­tel­män seu­ran­taan ja ana­ly­soin­tiin lsof on help­po­käyt­töi­nen työkalu. Vic Abellin vuonna 1994 kehittämä ja jul­kai­se­ma ohjelma on avoimen läh­de­koo­din oh­jel­mis­to ja kuuluu monien Linux-jakelujen, kuten Debianin tai Ubuntun, va­kio­toi­mi­tuk­siin. lsof on lyhenne sanoista ”List open files”. Ohjelma tarjoaa tietoa tie­dos­to­tyy­peis­tä, jotka ovat tällä hetkellä auki tai jotka on aiemmin avattu käynnissä olevien pro­ses­sien toimesta. Tähän kuuluvat ta­val­li­set tiedostot, ha­ke­mis­tot, socketit, asemat ja portit. Se esittää selkeän ja jär­jes­te­tyn luettelon eri pro­ses­seis­ta ja niihin liit­ty­vis­tä tie­dos­tois­ta.

Miten Linuxin lsof-komento toimii?

Jos lsof-ohjelmaa ei ole jär­jes­tel­mäs­sä­si, asenna se seu­raa­val­la Linux-ko­men­nol­la:

$ apt-get install lsof
bash

Kun Linux-ohjelma lsof on asennettu, sen avulla saat kattavan yleis­ku­van tie­to­ko­nee­si käynnissä olevista pro­ses­seis­ta. Tämä on mah­dol­lis­ta, koska Unix-tyyp­pi­sis­sä jär­jes­tel­mis­sä kaikkea kä­si­tel­lään tie­dos­toi­na. Näin ollen voit lsof-ohjelman avulla selvittää, mitkä prosessit pääsevät käsiksi tiettyyn tie­dos­toon.

Miltä Isof-syntaksi näyttää?

Haluatko käyttää lsof-komentoa? Tässä on kyseisen komennon pe­rus­muo­to:

$ lsof [Option] <Format>
bash

Vaikka lsof-komentoa voi käyttää ilman pa­ra­met­re­ja tai suo­dat­ti­mia, sitä ei suo­si­tel­la. Tulostus olisi tällöin erittäin laaja ja vaikeasti tul­kit­ta­va.

Mitkä vaih­toeh­dot ja suo­dat­ti­met ovat käy­tet­tä­vis­sä Linuxin lsof-ko­men­nol­la?

lsof tukee lukuisia tu­los­tus­vaih­toeh­to­ja. Tär­keim­mät niistä ovat:

  • -F: Tämä vaih­toeh­to varmistaa, että kaikki tulokset tu­los­te­taan yhtenä sa­rak­kee­na.
  • -l: Tämän vaih­toeh­don avulla voit näyttää käyt­tä­jä­tun­nuk­sen nimen sijaan.
  • -n: Tämän vaih­toeh­don avulla tu­los­te­taan vastaavat IP-osoitteet isän­tä­ni­mien sijaan.
  • -P: Tällä vaih­toeh­dol­la näytetään pal­ve­lu­ni­mien sijaan port­ti­nu­me­rot.
  • -r [x]: Tämä vaih­toeh­to varmistaa, että tuloste suo­ri­te­taan uudelleen joka x sekunti.
  • -t: Tällä vaih­toeh­dol­la tu­los­te­taan vain PID-lista (pro­ses­si­tun­nis­te).

Lisäksi lsof-ko­men­nol­la on lukuisia suo­da­tin­vaih­toeh­to­ja. Ylei­sim­mät niistä ovat:

  • -a: Tämä on looginen JA-operaatio OR-ope­raa­tion sijaan; sitä käytetään ole­tuk­se­na.
  • -c [Prosessi]: Selvittää, mikä tiedosto on minkä prosessin käytössä.
  • +D /file/user: Tämä suodatin antaa tietoja tietystä ha­ke­mis­tos­ta ja sen käyt­tä­jäs­tä.
  • /dev/asema: Käytä tätä suo­da­tin­ta tar­kis­taak­se­si tietyn aseman.
  • -i [TCP/UDP tai vaih­toeh­toi­nen IP-osoite tai portti]: Antaa tietoja siitä, mitkä prosessit käyttävät mitäkin verk­ko­pal­ve­lui­ta.
  • +L1: Käytä tätä suo­da­tin­ta saa­dak­se­si tietoja pois­te­tuis­ta tie­dos­tois­ta.
  • +p PID: Antaa tietoja siitä, mitkä tiedostot ovat minkäkin PID:n käytössä.
  • /path/file: Antaa tietoja tietystä tie­dos­tos­ta.
  • -u [Käyttäjä]: Selvittää, mikä käyttäjä käyttää mitäkin tie­dos­to­ja.

Mihin Linuxin lsof-komentoa käytetään?

Lopuksi esit­te­lem­me muutaman esimerkin avulla, miten ja mihin lsof-komentoa käytetään.

$ lsof -u root
bash

Tämän avulla voit tar­kas­tel­la kaikkia tie­dos­to­ja, jotka root-käyt­tä­jäl­lä on tällä hetkellä auki.

$ lsof /mount/path
bash

Usein lsof-komentoa käytetään tun­nis­ta­maan ohjelmat, jotka estävät mount-komennon suo­rit­ta­mi­sen. Tätä tehtävää ei voida suorittaa, jos asiaan liittyvät tiedostot ovat edelleen auki.

$ lsof -n -i
bash

Tällä ko­men­nol­la voit luetella kaikki avoimet portit.

Siirry pää­va­lik­koon