Linux-værktøjet lsof gør det muligt at overvåge systemet og opdage problemer hurtigt. Det viser en liste over åbne filer, som du kan tilpasse til dine spe­ci­fik­ke behov ved hjælp af filtre og indstil­lin­ger.

Hvad er Linux lsof?

lsof er et bru­ger­ven­ligt værktøj til over­våg­ning og analyse af dit Linux-system. Pro­gram­met, der blev udviklet og udgivet i 1994 af Vic Abell, er open source og indgår som standard i mange Linux-di­stri­bu­tio­ner, såsom Debian eller Ubuntu. lsof står for »List open files«. Pro­gram­met giver op­lys­nin­ger om filtyper, der i øje­blik­ket er åbne eller tidligere er blevet åbnet af kørende processer. Dette omfatter al­min­de­li­ge filer, mapper, sockets, drev og porte. Det præ­sen­te­rer en over­sku­e­lig og vel­or­ga­ni­se­ret liste over de for­skel­li­ge processer og til­hø­ren­de filer.

Hvordan fungerer Linux lsof?

Hvis lsof ikke findes på dit system, skal du blot in­stal­le­re det med denne Linux-kommando:

$ apt-get install lsof
bash

Når Linux lsof er in­stal­le­ret, giver det dig mulighed for at få et om­fat­ten­de overblik over de aktive processer på din computer. Dette er muligt, fordi alt i Unix-lignende systemer behandles som en fil. Derfor kan du bruge lsof til at finde ud af, hvilke processer der har adgang til en bestemt fil.

Hvordan ser Isof-syntaksen ud?

Vil du bruge lsof? Her er den grund­læg­gen­de syntaks for den på­gæl­den­de kommando:

$ lsof [Option] <Format>
bash

Selvom det er muligt at bruge lsof uden indstil­lin­ger eller filtre, frarådes det. Den re­sul­te­ren­de udskrift vil være meget om­fat­ten­de og vanskelig at forstå.

Hvilke indstil­lin­ger og filtre findes der i Linux lsof?

lsof un­der­støt­ter en lang række out­put­mu­lig­he­der. De vigtigste er:

  • -F: Denne indstil­ling sikrer, at alle re­sul­ta­ter vises i én kolonne.
  • -l: Denne indstil­ling lader dig vise bruger-ID’et i stedet for navnet.
  • -n: Med denne indstil­ling vises de til­hø­ren­de IP-adresser i stedet for vært­s­nav­ne.
  • -P: Sådan vises po­rt­num­re­ne i stedet for tje­ne­ste­nav­ne­ne.
  • -r [x]: Denne indstil­ling sikrer, at ud­skrif­ten ge­nud­fø­res hvert x. sekund.
  • -t: Med denne indstil­ling vises kun en liste over PID’er (Process Iden­ti­fi­er).

Derudover har lsof en lang række fil­tre­rings­mu­lig­he­der. De mest al­min­de­li­ge er:

  • -a: Dette er en logisk AND-operation i stedet for en OR-operation; den bruges som standard.
  • -c [Process]: Find ud af, hvilken fil der bruges af hvilken proces.
  • +D /fil/bruger: Dette filter giver op­lys­nin­ger om et bestemt bibliotek og dets bruger.
  • /dev/drev: Brug dette filter til at kon­trol­le­re et bestemt drev.
  • -i [TCP/UDP eller al­ter­na­tiv IP-adresse eller port]: Giver op­lys­nin­ger om, hvilke processer der bruger hvilke net­værk­stje­ne­ster.
  • +L1: Brug dette filter til at få op­lys­nin­ger om slettede filer.
  • +p PID: Giver op­lys­nin­ger om, hvilke filer der bruges af hvilken PID.
  • /path/file: Giver op­lys­nin­ger om en bestemt fil.
  • -u [Bruger]: Find ud af, hvilken bruger der bruger hvilke filer.

Hvad bruges Linux lsof til?

Af­slut­nings­vis vil vi ved hjælp af nogle eksempler vise dig, hvordan og til hvad lsof bruges.

$ lsof -u root
bash

På denne måde kan du se alle de filer, som root har åbne i øje­blik­ket.

$ lsof /mount/path
bash

Ofte bruges lsof til at iden­ti­fi­ce­re pro­gram­mer, der for­hin­drer ud­fø­rel­sen af kom­man­do­en mount. Denne opgave kan ikke udføres, hvis de på­gæl­den­de filer stadig er åbne.

$ lsof -n -i
bash

Med denne kommando kan du få vist en liste over alle åbne porte.

Gå til ho­ved­me­nu­en