LSFD(1) Comenzi utilizator LSFD(1) NUME lsfd - listeaza descriptorii de fiiere REZUMAT lsfd [opiune] DESCRIERE lsfd se dorete a fi un inlocuitor modern pentru lsof(8) pe sistemele Linux. Spre deosebire de lsof, lsfd este specializat pentru nucleul Linux; acesta suporta caracteristici specifice Linux, cum ar fi spaiile de nume, cu un cod mai simplu. lsfd nu este un inlocuitor instantaneu pentru lsof; acestea sunt diferite in ceea ce privete interfaa liniei de comanda i formatele de ieire. Rezultatele implicite pot fi modificate. Aadar, ori de cate ori este posibil, ar trebui sa evitai sa utilizai ieirile implicite in scripturile dumneavoastra. Definii intotdeauna in mod explicit coloanele ateptate folosind --output lista-coloane in mediile in care este necesara o ieire stabila. lsfd utilizeaza Libsmartcols pentru formatarea i filtrarea ieirii. A se vedea descrierea opiunii --output pentru personalizarea formatului de ieire i a opiunii --filter pentru filtrare. Utilizai lsfd --list-columns pentru a obine o lista cu toate coloanele disponibile. OPIUNI -l, --threads Afieaza lista la nivel de fire de excuie. -J, --json Utilizeaza formatul de ieire JSON. -n, --noheadings Nu afieaza linia de titluri. -o, --output lista Specifica ce coloane de ieire se vor afia. Consultai seciunea COLOANE DE IEIRE pentru detalii despre coloanele disponibile. Lista implicita de coloane poate fi extinsa daca lista este specificata in formatul +lista (de exemplu, lsfd -o +DELETED). -r, --raw Utilizeaza formatul de ieire brut. --notruncate Nu trunchiaza textul din coloane. -p, --pid pids Colecteaza informaii numai pentru procesele specificate. pids este o lista de pid-uri. Ca separatori se poate folosi o virgula sau spaii albe. Putei utiliza aceasta opiune impreuna cu pidof(1). A se vedea EXEMPLE DE FILTRARE. Atat opiunea -Q cu o expresie care include PID, de exemplu -Q (PID == 1), cat i opiunea -p, de exemplu -p 1, pot imprima aceeai ieire, dar utilizarea opiunii -p este mult mai eficienta deoarece opiunea -p acioneaza intr-o etapa mult mai timpurie a procesarii decat opiunea -Q. -i[4|6], --inet[=4|=6] Enumera numai socluri IPv4 i/sau socluri IPv6. -Q, --filter expresia Afieaza numai fiierele care corespund condiiei reprezentate de expresia. A se vedea, de asemenea, scols-filter(5) i EXEMPLE DE FILTRARE. -C, --counter eticheta:expresia_filtru Definete un contor personalizat utilizat in ieirea --summary. lsfd creeaza un contor numit eticheta. In timpul colectarii informaiilor, lsfd numara fiierele care corespund expresia_filtru i stocheaza numarul numarat in contorul numit eticheta. lsfd aplica filtrele definite cu opiunile --filter inainte de numarare; fiierele excluse de filtre nu sunt numarate. A se vedea scols-filter(5) despre expresia_filtrare. eticheta nu trebuie sa includa ,,{" i nici ,,:". Putei defini mai multe contoare prin specificarea acestei opiuni de mai multe ori. A se vedea, de asemenea, EXEMPLE DE CONTORIZARE. --summary[=cand] Aceasta opiune controleaza ieirea liniilor de rezumat. Argumentul opional cand poate fi only, append sau never. In cazul in care argumentul cand este omis, valoarea implicita este only. In rezumat, programul raporteaza valorile contoarelor. Un contor este format dintr-o eticheta i o valoare intreaga. --counter este opiunea de definire a unui contor. Daca utilizatorul nu definete niciun contor, lsfd utilizeaza definiiile contoarelor predefinite incorporate (contoare implicite) pentru a realiza rezumatul. ATENIE: Utilizarea --summary i --json poate face ca ieirea sa fie intrerupta. Este valabila doar combinarea --summary=only i --json. --debug-filter Descarca structura interna de date pentru filtru i iese. Acest lucru este util numai pentru dezvoltatorii lsfd. --dump-counters Descarca definiia contoarelor utilizate in --summary. --hyperlink[=mod] Imprima rutele ca hiperlegaturi de terminal. Argumentul mod poate fi definit la ,,always" (intotdeauna), ,,never" (niciodata) sau ,,auto". Argumentul opional cand poate fi definit la ,,auto", ,,never" sau ,,always". Daca argumentul cand este omis, se va utiliza in mod implicit ,,auto". Parametrul ,,auto" inseamna ca hiperlegaturile vor fi utilizate numai daca ieirea este pe un terminal. -H, --list-columns Listeaza coloanele disponibile pe care le putei specifica la opiunea --output. -h, --help Afieaza acest mesaj de ajutor i iese. -V, --version Afieaza versiunea i iese. COLOANE DE IEIRE Fiecare coloana este de un tip. Tipurile sunt inconjurate de < i >. ATENIE: Numele i tipurile de coloane nu sunt inca stabile. Acestea pot fi modificate in versiunile viitoare. AINODECLASS <ir> Clasa nodului-i anonim. ASSOC <ir> Asocierea dintre fiier i proces. BLKDRV <ir> Numele controlorului de dispozitiv de bloc rezolvat de ,,/proc/devices". BPF-MAP.ID Identificatorul harii bpf. BPF-MAP.TYPE <ir> Numele decodificat al tipului de harta bpf. BPF-MAP.TYPE.RAW Tipul de harta bpf (brut). BPF.NAME <ir> Numele obiectului bpf. BPF-PROG.ID Identificatorul programului bpf. BPF-PROG.TAG <ir> Eticheta (TAG) programului bpf. BPF-PROG.TYPE <ir> Numele decodificat al tipului de program bpf. BPF-PROG.TYPE.RAW Tipul de program bpf (brut). CHRDRV <ir> Numele controlorului de dispozitiv de caracter rezolvat de ,,/proc/devices". COMMAND <ir> Comanda procesului de deschidere a fiierului. DELETED Accesibilitatea sistemului de fiiere. DEV <ir> ID-ul dispozitivului care conine fiierul. DEVTYPE <ir> Tipul dispozitivului (,,blk", ,,char", sau ,,nodev"). ENDPOINTS Informaii despre punctele finale IPC comunicate cu descriptorul de fiier (fd). lsfd colecteaza punctele finale in cadrul proceselor pe care lsfd le scaneaza; lsfd poate rata unele puncte finale daca limitai procesele cu opiunea -p. Formatul coloanei depinde de obiectul asociat cu descriptorul de fiier: tip FIFO, tip mqueue, surse ptmx i pts PID,COMANDA,ASSOC[-r][-w] The last characters ([-r][-w]) represent the read and/or write mode of the endpoint. tip eventfd PID,COMANDA,ASSOC UNIX-STREAM PID,COMANDA,ASSOC[-r?][-w?] In ceea ce privete ultimele caractere ([-r?][-w?]), a se vedea descrierea SOCK.SHUTDOWN. EVENTFD.ID Identificatorul eventfd. EVENTPOLL.TFDS <ir> Descriptori de fiiere vizate de fiierul eventpoll. FD Descriptorul de fiier al fiierului. FLAGS <ir> Fanioane specificate la deschiderea fiierului. FUID Numarul ID-ului de utilizator al proprietarului fiierului. INET.LADDR <ir> Adresa IP locala. INET.RADDR <ir> Adresa IP de la distana. INET6.LADDR <ir> Adresa IP6 locala. INET6.RADDR <ir> Adresa IP6 de la distana. NOD-I Numarul nodului-i. INOTIFY.INODES <ir> Versiunea procesata a INOTIFY.INODES.RAW. Formatul elementului este numar-nod-i,sursa-de-nod-i. INOTIFY.INODES.RAW <ir> Lista de noduri-i de monitorizare. Formatul elementului este numar-nod-i,dispozitiv-major:dispozitiv-minor`. KNAME <ir> Numele fiierului brut extras din /proc/pid/fd/descriptor-fiier sau /proc/`pid/map_files/`regiune. KTHREAD Daca procesul este sau nu un fir de execuie al nucleului. MAJ:MIN <ir> ID-ul dispozitivului special sau ID-ul dispozitivului care conine fiierul. MAPLEN Lungimea cartografierii fiierului (in pagini). MISCDEV <ir> Diverse nume de dispozitiv de caractere rezolvate de ,,/proc/misc". MNTID Identificatorul montarii. MODE <ir> Modul de acces (rwx). NAME <ir> Versiunea procesata a lui KNAME. Este in mare parte aceeai cu KNAME. Unele fiiere au formate i surse de informaii speciale: AF_VSOCK state=SOCK.STATE type=SOCK.TYPE laddr=VSOCK.LADDR[ raddr=VSOCK.RADDR] ,,raddr" nu este afiata pentru soclurile de ascultare. bpf-map id=BPF-MAP.ID type=BPF-MAP.TYPE[ name=BPF.NAME] bpf-prog id=BPF-PROG.ID type=BPF-PROG.TYPE tag= BPF-PROG.TAG [ name=BPF.NAME] eventpoll tfds=EVENTPOLL.TFDS eventfd id=EVENTFD.ID inotify inodes=INOTIFY.INODES misc:tun iface=TUN.IFACE NETLINK protocol=PROTOCOL.NETLINK[ lport=PORT.NETLINK-LOCAL[ group=GRUPURI.NETLINK]] PACKET type=TIP.SOCLU[ protocol=PROTOCOL.PACHET][ iface=INTERFAA.PACHET] pidfd pid=PID-INTA comm=COMANDA-INTA nspid=PIDS.SPAIU.NUME-INTA lsfd extrage PID-INTA i PIDS.SPAIU.NUME-INTA din ,,/proc/"pid,,/fdinfo/"fd. PING state=STARE.SOCLU[ id=ID.PING][ laddr=ADRESA.INET.LOCALA [ raddr=ADRESA.INET.LA-DISTANA]] PINGv6 state=STARE.SOCLU[ id=ID.PING][ laddr=ADRESA.INET6.LOCALA [ raddr=ADRESA.INET6.LA-DISTANA]] ptmx tty-index=PTMX.TTY-INDEX lsfd extrage PTMX.TTY-INDEX din ,,/proc/"pid,,/fdinfo/"fd. RAW state=STARE.SOCLU[ protocol=PROTOCOL.BRUT [ laddr=ADRESA.INET.LOCALA [ raddr=ADRESA.INET.LA-DISTANA]]] RAWv6 state=STARE.SOCLU[ protocol=PROTOCOL.BRUT [ laddr=ADRESA.INET6.LOCALA [ raddr=ADRESA.INET6.LA-DISTANA]]] signalfd mask=SIGNALFD.MASK TCP, TCPv6 state=STARE.SOCLU[ laddr=ADRESA.TCP.LOCALA [ raddr=ADRESA.TCP.LA-DISTANA]] timerfd clockid=TIMERFD.CLOCKID[ remaining=TIMERFD.REMAINING [ interval=TIMERFD.INTERVAL]] UDP, UDPv6 state=STARE.SOCLU[ laddr=ADRESA.UDP.LOCALA [ raddr=ADRESA.UDP.LA-DISTANA]] lsfd ascunde raddr= daca UDP.RADDR_este 0.0.0.0 i _UDP.RPORT este 0. UDP-LITE, UDPLITEv6 state=STARE.SOCLU[ laddr=ADRESA.UDPLITE.LOCALA [ raddr=ADRESA.UDPLITE.LA-DISTANA]] UNIX-STREAM state=STARE.SOCLU[ path=RUTA.UNIX] UNIX state=STARE.SOCLU[ path=RUTA.UNIX] type=TIP.SOCLU Reinei ca marcajele (ters) sunt eliminate din aceasta coloana. Consultai KNAME, DELETED sau XMODE pentru a afla daca fiierul poate fi citit din sistemul de fiiere. GRUPURI.NETLINK Grupuri multicast Netlink. NETLINK.PORT-LOCAL Identificatorul portului local Netlink. PROTOCOL.NETLINK <ir> Protocolul Netlink. NLINK Numarul de legaturi. NUME.SPAIU-NUME <ir> Numele (TIP.SPAIU-NUME:[_NOD-I]) spaiului de nume specificat cu fiierul. TIP.SPAIU-NUME <ir> Tipul spaiului de nume specificat cu fiierul. Tipul este ,,mnt", ,,cgroup", ,,uts", ,,ipc", ,,user", ,,pid", ,,net", ,,time" sau ,,unknown". PROPRIETAR <ir> Proprietarul fiierului. INTERFAA.PACHET <ir> Numele interfeei asociate cu soclul de pachete. PROTOCOL.PACHET. <ir> Protocolul L3 asociat cu soclul de pachete. PARTIIA <ir> Numele dispozitivului de bloc rezolvat de /proc/partition. PID PID-ul procesului care deschide fiierul. PIDFD.COMM <ir> Comanda procesului vizat de pidfd. PIDFD.NSPID <ir> Valoarea campului NSpid din /proc/pid/fdinfo/`descriptor-fiier al pidfd. Citat din kernel/fork.c din arborele sursa Linux: In cazul in care sunt acceptate spaiile de nume pid, atunci aceasta funcie va imprima, de asemenea, pid-ul unui anumit pidfd la care se refera pentru toate spaiile de nume pid descendente incepand cu spaiul de nume pid curent al instanei, adica campul Pid i prima intrare din campul NSpid vor fi identice. Reinei ca acest lucru difera de campurile Pid i NSpid din /proc//status, unde Pid i NSpid sunt intotdeauna afiate in raport cu spaiul de nume pid al instanei procfs. PIDFD.PID PID-ul procesului vizat de pidfd. PING.ID <`numar`> ID-ul solicitarii de ecou ICMP utilizat pe soclul PING. POZIIA Poziia fiierului. RAW.PROTOCOL Numarul de protocol al soclului brut. RDEV <ir> ID-ul dispozitivului (daca este vorba de un fiier special). SIGNALFD.MASK <ir> Semnalele mascate. SIZE Dimensiunea fiierului. SOCK.LISTENING Soclu de ascultare. SOCK.NETS Nodul-i care identifica spaiul de nume al reelei din care face parte soclul. SOCK.PROTONAME <ir> Numele protocolului. SOCK.SHUTDOWN <ir> Starea de inchidere a soclului. [-r?] Daca primul caracter este r, recepiile sunt permise. Daca este -, recepiile nu sunt permise. Daca este ?, starea este necunoscuta. [-w?] Daca al doilea caracter este w, transmisiunile sunt permise. Daca este -, transmisiunile sunt interzise. Daca este ?, starea este necunoscuta. STARE.SOCLU <ir> Starea soclului. TIP.SOCLU <ir> Tipul de soclu. Aici tipul inseamna al doilea parametru al apelului de sistem pentru soclu: o stream o dgram o raw o rdm o seqpacket o dccp o packet SOURCE <ir> Sistemul de fiiere, partiia sau dispozitivul care conine fiierul. Pentru asociaia care are ERROR ca valoare pentru coloana TYPE, lsfd completeaza aceasta coloana cu syscall:_errno_. STTYPE <ir> Tipuri de fiiere brute returnate de stat(2): BLK, CHR, DIR, FIFO, LINK, REG, SOCK sau UNKN. ADRESA.TCP.LOCALA <ir> Adresa L3 locala (ADRESA.INET.LOCALA sau ADRESA.INET6.LOCALA) i portul TCP local. TCP.LPORT Portul TCP local. TCP.RADDR <ir> Adresa L3 la distana (ADRESA.INET.LA-DISTANA sau ADRESA.INET6.LA-DISTANA) i portul TCP la distana. TCP.RPORT Portul TCP de la distana. TID ID-ul firului de execuie al procesului care deschide fiierul. TIMERFD.CLOCKID <ir> Identificatorul ceasului (clockid). TIMERFD.INTERVAL Interval. TIMERFD.REMAINING Timpul ramas. PTMX.TTY-INDEX Indicele TTY al omologului. INTERFAA.TUN <ir> Interfaa de reea din spatele dispozitivului tun. TYPE <ir> Versiunea procesata a STTYPE. Este aceeai cu STTYPE cu cateva excepii. Pentru SOCK, se afieaza valoarea pentru SOCK.PROTONAME. Pentru UNKN, se afieaza valoarea pentru AINODECLASS daca SOURCE este ,,anon_inodefs". Daca lsfd primete o eroare atunci cand apeleaza un ,,syscall" (apel de sistem) pentru a afla despre un descriptor de fiier inta, lsfd completeaza aceasta coloana cu ERROR. ADRESA.UDP.LOCALA <ir> Adresa IP locala i portul UDP local. UDP.LPORT Portul UDP local. UDP.RADDR <ir> Adresa IP de la distana i portul UDP de la distana. UDP.RPORT Portul UDP de la distana. UDPLITE.LADDR <ir> Adresa IP locala i portul UDPLite local. UDPLITE.LPORT Portul UDP local. UDPLITE.RADDR <ir> Adresa IP de la distana i portul UDPLite de la distana. UDPLITE.RPORT Portul UDP de la distana. UID Numarul de identificare al utilizatorului. UNIX.PATH <ir> Numele rutei sistemului de fiiere pentru soclul de domeniu UNIX. USER <ir> Utilizatorul procesului. VSOCK.LADDR <ir>, VSOCK.RADDR <ir> Adresa locala VSOCK. Formatul elementului este VSOCK.LCID:VSOCK.LPORT. CID-urile bine cunoscute vor fi decodificate: ,,*", ,,hypervisor", ,,local", sau ,,host". Porturile bine cunoscute vor fi decodificate: ,,*". VSOCK.LCID , VSOCK.RCID Identificatori de context VSOCK locali i de la distana. VSOCK.LPORT , VSOCK.RPORT Porturi VSOCK locale i de la distana. XMODE <ir> Versiunea extinsa a MODE. Aceasta coloana poate crete; noi litere pot fi adaugate la XMODE atunci cand lsfd accepta o noua stare a descriptorilor de fiiere i/sau a atribuirilor de memorie. [-r] deschis de atribuire pentru lectura. Acesta este, de asemenea, in MODE. [-w] deschis de atribuire pentru scriere. Acesta este, de asemenea, in MODE. [-x] atribuit pentru executarea codului. Acesta este, de asemenea, in MODE. [-D] ters din sistemul de fiiere. A se vedea i DELETED. [-Ll] blocat sau concesionat. l reprezinta o citire, un blocaj partajat sau o concesiune de citire. L reprezinta o scriere, un blocaj exclusiv sau o concesiune de scriere. In cazul in care un descriptor de fiier are atat blocaje sau concesiuni de citire/partajate, cat i de scriere/exclusive, L este utilizat ca indicator. [-m] Multiplexat. In cazul in care descriptorul de fiier este vizat de un fiier eventpoll sau de apelurile de sistem clasice pentru multiplexare (select, pselect, poll i ppoll), acest fanion de bit este activat. Reinei ca, in cazul in care o invocare a apelurilor de sistem clasice este intrerupta, lsfd poate sa nu reueasca sa marcheze m pe descriptorii de fiiere monitorizai de invocarea respectiva. A se vedea restart_syscall(2). EXEMPLE DE FILTRARE lsfd are puine opiuni de filtrare. In cele mai multe cazuri, ceea ce trebuie sa tii este opiunea -Q (sau --filter). Combinata cu opiunea -o (sau --output), putei personaliza ieirea dupa cum dorii. Listeaza fiierele asociate cu procesele PID 1 i PID 2: # lsfd -Q '(PID == 1) or (PID == 2)' Face acelai lucru intr-un mod alternativ: # lsfd -Q '(PID == 1) || (PID == 2)' Face acelai lucru intr-un mod mai eficient: # lsfd --pid 1,2 In loc de virgula se pot folosi spaiile albe: # lsfd --pid '1 2' Utilizeaza pidof(1) pentru a lista fiierele asociate cu ,,firefox": # lsfd --pid "$(pidof firefox)" Listeaza primul descriptor de fiier deschis de procesul PID 1: # lsfd -Q '(PID == 1) and (FD == 1)' Face acelai lucru intr-un mod alternativ: # lsfd -Q '(PID == 1) && (FD == 1)' Listeaza toate executabilele care ruleaza: # lsfd -Q 'ASSOC == "exe"' Face acelai lucru intr-un mod alternativ: # lsfd -Q 'ASSOC eq "exe"' Face acelai lucru, dar afieaza doar numele fiierelor: # lsfd -o NAME -Q 'ASSOC eq "exe"' | sort -u Listeaza fiierele terse asociate proceselor: # lsfd -Q 'DELETED' Listeaza fiierele care nu sunt obinuite: # lsfd -Q 'TYPE != "REG"' Listeaza dispozitivele de bloc: # lsfd -Q 'DEVTYPE == "blk"' Face acelai lucru cu coloana TIP: # lsfd -Q 'TYPE == "BLK"' Listeaza fiierele care includ directorul ,,dconf" in numele lor: # lsfd -Q 'NAME =~ ".\*/dconf/.*"' Listeaza fiierele deschise intr-o maina virtuala QEMU: # lsfd -Q '(COMMAND =~ ".\*qemu.*") and (FD >= 0)' Listeaza fiierele timerfd expirate in termen de 0,5 secunde: # lsfd -Q '(TIMERFD.remaining < 0.5) and (TIMERFD.remaining > 0.0)' Listeaza procesele care comunica prin intermediul soclurilor de flux unix: # lsfd -Q 'TYPE == "UNIX-STREAM" && UNIX.PATH =~ ".+"' -oUNIX.PATH,PID,COMMAND,FD,SOCK.STATE,ENDPOINTS Listeaza procesele care comunica prin intermediul unui soclu de flux unix specificat: # lsfd -Q 'TYPE == "UNIX-STREAM" && UNIX.PATH == "@/tmp/.X11-unix/X0"' -oUNIX.PATH,PID,COMMAND,FD,SOCK.STATE,ENDPOINTS EXEMPLE DE CONTORIZARE Raporteaza numarul de descriptori de soclu netlink i de descriptori de soclu unix: # lsfd --summary=only \ -C 'netlink sockets':'(NAME =~ "NETLINK:.*")' \ -C 'unix sockets':'(NAME =~ "UNIX:.*")' VALUE COUNTER 57 netlink sockets 1552 unix sockets Face acelai lucru, dar afieaza in formatul JSON: # lsfd --summary=only --json \ -C 'netlink sockets':'(NAME =~ "NETLINK:.*")' \ -C 'unix sockets':'(NAME =~ "UNIX:.*")' { "lsfd-summary": [ { "value": 15, "counter": "netlink sockets" },{ "value": 798, "counter": "unix sockets" } ] } ISTORIC Comanda lsfd face parte din pachetul util-linux incepand cu v2.38. AUTORI Masatake YAMATO , Karel Zak CONSULTAI I bpftool(8), bps(8), lslocks(8), lsof(8), pidof(1), proc(5), scols-filter(5), socket(2), ss(8), stat(2), vsock(7) RAPORTAREA ERORILOR Pentru rapoarte de eroare, folosii sistemul de urmarire al erorilor . DISPONIBILITATE Comanda lsfd face parte din pachetul util-linux care poate fi descarcat de la Linux Kernel Archive . util-linux 2.41 2025-03-29 LSFD(1)