lsof (abreviació de list of open files, en català, llista de fitxers oberts) és una coneguda eina de monitoratge de sistemes operatius tipus Unix que s'utilitza per mostrar tots els arxius de disc que mantenen oberts els processos, incloent els sockets de xarxa oberts, canonades, entre altres tipus.[1]

Lsof
Modifica el valor a Wikidata
Tipusprogramari lliure Modifica el valor a Wikidata
Versió estable
4.99.3 (16 desembre 2023) Modifica el valor a Wikidata
Llicènciallicència BSD Modifica el valor a Wikidata
Característiques tècniques
Sistema operatiuUnix-like Modifica el valor a Wikidata
Escrit enC Modifica el valor a Wikidata
Més informació
Lloc weblsof.readthedocs.io (anglès) Modifica el valor a Wikidata

Captura de pantalla ajuda lsof

La comanda lsof ofereix a l'usuari informació detallada sobre el context on s'utilitza l'arxiu. Entre la informació es troba:

  • Nom i ID del procés,
  • Nom o id de l'usuari que va llançar aquest procés,
  • El descriptor d'arxiu juntament amb la manera d'obertura (lectura, escriptura, etc ..),
  • El tipus de node associat a la imatge: Canonada (FIFO), Socket IPv4, Socket IPv6, Directori, bloc de dispositius, etc ..
  • La ruta absoluta de l'arxiu o bé informació relativa segons el tipus,
  • El context de seguretat SELinux

lsof és programari lliure i el seu autor original és Victor A. Abell[2]

Mode d'ús modifica

lsof [PARÀMETRES] [ARXIU ..]

A la invocació de la comanda lsof, es permet identificar quins processos estan utilitzant el o els arxius indicats.

Algun dels paràmetres que té lsof són:

-a
Permet que les opcions (paràmetres) siguin requisits per llistar. Útil quan es "filtra" usant -c, -g, -o o -p.
-c CADENA
Llista els arxius dels processos que comencin amb CADENA
-d FDs
Determina que s'han d'excloure el o els Descriptors d'Arxius (FD) de la llista. Els valors se separen per comes.
+d DIRECTORI
Llista els processos que utilitzin el directori o bé algun dels arxius que contingui.
+D DIRECTORI
ídem a l'anterior però recursiu: inclou els subdirectoris i arxius que aquests continguin
-I
Llista els sockets oberts.
-g GID
Llista els arxius llançats pel GID (ID de Grup) indicat.
-n
No resol els noms de domini.
-p PID
Llista els arxius oberts pel procés amb el PID (identificador de procés) indicat.
-P
No resol els noms dels ports (connexions).
[+|-]r [N [mCADENA]]
Imprimeix en pantalla el resultat cada N segons, si no s'especifica s'executa cada 15. Si s'utilitza el prefix '-' es repeteix aquesta operació fins que l'usuari el cancel · (ctrl+C), en canvi si s'utilitza el prefix '+', el procés acaba quan no hi hagi fitxers llistats. Addicionalment entre cada actualització és possible indicar quina és la cadena de text que separa cada resultat, mitjançant m CADENA. En cas de no indicar cap cadena, per defecte s'utilitza '======='.
-u [ usuari | UID]
Llista els arxius oberts per l'usuari o bé UID (identificador d'usuari).
-U
Llista els sockets UNIX (IPC sockets).

Si no s'indica cap paràmetre lsof enumera tots els arxius oberts en aquest moment, que normalment solen ser bastants.

Exemples modifica

Llistar els fitxers oberts pel procés firefox. Es van utilitzar expressions regulars per garantir que sigui aquest procés:

lsof -c "/\bfirefox\b/"

Llistar els processos que fan ús de l'arxiu /home /usuari/fitxer.txt:

lsof /home/usuari/fitxer.txt

Llistar els fitxers oberts pertanyents al home de l'usuari actual. L'accent (~) és l'àlies de l'home de l'usuari:

lsof +D ~

Llistar els sockets oberts pel procés el nom contingui "java" (filtrat per grep):

lsof -i -n -P | grep java

Resultat:

java 11819 lyonn 34u IPv6 52669 TCP *: 1095 (LISTEN)
java 11819 lyonn 37u IPv6 52671 TCP *: 53.872 (LISTEN)
java 11819 lyonn 39u IPv6 52732 TCP 10.225.183.218:41525 -> 10.225.183.218:35812 (ESTABLISHED)
java 11880 lyonn 34u IPv6 52743 TCP *: 1096 (LISTEN)
java 11880 lyonn 37u IPv6 52745 TCP *: 33.029 (LISTEN)
java 11880 lyonn 39u IPv6 52757 TCP 10.225.183.218:41530 -> 10.225.18

Vegeu també modifica

Enllaços externs modifica

Referències modifica