LSFD(1) | Команди користувача | LSFD(1) |
НАЗВА
lsfd - виведення списку дескрипторів файлів
КОРОТКИЙ ОПИС
lsfd [параметр]
ОПИС
lsfd є сучасною заміною lsof(8) у системах Linux. На відміну від lsof, lsfd призначено спеціально для ядра Linux; у програмі передбачено підтримку специфічних для Linux можливостей, зокрема просторами назв, із простішим кодом. lsfd не є повним замінником lsof; програми різняться інтерфейсом командного рядка та форматами виведення.
Типовий формат виведення може бути змінено авторами програми. Тому, коли це можливо, вам слід уникати обробки типових виведених даних у ваших скриптах. Завжди явно визначайте очікувані стовпчики за допомогою параметра --output список-стовпчиків у середовищах, де потрібне виведення стабільного набору даних.
lsfd використовує Libsmartcols для форматування та фільтрування виведених даних. Див. опис параметра --output щодо налаштовування формату виведення даних та параметр --filter щодо фільтрування. Скористайтеся lsfd --list-columns, щоб отримати список усіх доступних стовпчиків.
ПАРАМЕТРИ
-l, --threads
-J, --json
-n, --noheadings
-o, --output список
Типовий список стовпчиків може бути розширено, якщо список вказано у форматі +список (наприклад, lsfd -o +DELETED)
-r, --raw
--notruncate
-p, --pid pid-и
Параметр -Q з виразом, що включає PID, наприклад -Q (PID == 1), і параметр -p, наприклад -p 1, обидва можуть виводити однакові дані, але використання параметра -p є ефективнішим, оскільки параметр -p працює на набагато ранішому етапі обробки за параметр -Q.
-i[4|6], --inet[=4|=6]
-Q, --filter вираз
-C, --counter мітка:вираз_фільтрування
See scols-filter(5) about filter_expr. label should not include { nor :. You can define multiple counters by specifying this option multiple times.
Див. також ПРИКЛАДИ ЛІЧИЛЬНИКІВ.
--summary[=умова]
У резюме програма повідомляє значення лічильників. Лічильник складається з мітки та цілочисельні значення. --counter є параметром для визначення лічильника. Якщо користувач не визначає лічильників, lsfd використовує визначення попередньо визначених вбудованих лічильників (типових лічильників) для виведення резюме.
УВАГА! Використання --summary і --json може призвести до помилок у виведених даних. Можна поєднувати лише --summary=only і --json.
--debug-filter
--dump-counters
--hyperlink[=режим]
-H, --list-columns
-h, --help
-V, --version
СТОВПЧИКИ ВИВЕДЕННЯ
У кожного стовпчика є тип. Типи слід брати у < і >.
УВАГА! Назви і типи стовпчиків у програмі ще не є стабільними. Їх може бути змінено у майбутніх випусках.
AINODECLASS <рядок>
ASSOC <рядок>
BLKDRV <рядок>
BPF-MAP.ID <число>
BPF-MAP.TYPE <рядок>
BPF-MAP.TYPE.RAW <число>
BPF.NAME <рядок>
BPF-PROG.ID <число>
BPF-PROG.TAG <рядок>
BPF-PROG.TYPE <рядок>
BPF-PROG.TYPE.RAW <число>
CHRDRV <рядок>
COMMAND <рядок>
DELETED <булеве-значення>
DEV <рядок>
DEVTYPE <рядок>
ENDPOINTS <string>
lsfd collects endpoints within the processes that lsfd scans; lsfd may miss some endpoints if you limits the processes with -p option.
The format of the column depends on the object associated with the fd:
Тип FIFO, тип mqueue, джерела ptmx і pts
The last characters ([-r][-w]) represent the read and/or write mode of the endpoint.
тип eventfd
UNIX-STREAM
About the last characters ([-r?][-w?]), see the description of SOCK.SHUTDOWN.
EVENTFD.ID <число>
EVENTPOLL.TFDS <рядок>
FD <число>
FLAGS <рядок>
FUID <число>
INET.LADDR <рядок>
INET.RADDR <рядок>
INET6.LADDR <рядок>
INET6.RADDR <рядок>
INODE <число>
INOTIFY.INODES <рядок>
INOTIFY.INODES.RAW <рядок>
KNAME <рядок>
KTHREAD <булеве-значення>
MAJ:MIN <рядок>
MAPLEN <число>
MISCDEV <рядок>
MNTID <число>
MODE <рядок>
NAME <рядок>
Some files have special formats and information sources:
AF_VSOCK
raddr is not shown for listening sockets.
bpf-map
bpf-prog
eventpoll
eventfd
inotify
misc:tun
NETLINK
PACKET
pidfd
lsfd extracts TARGET-PID and TARGET-NSPIDS from /proc/pid/fdinfo/fd.
PING
PINGv6
ptmx
lsfd extracts PTMX.TTY-INDEX from /proc/pid/fdinfo/fd.
RAW
RAWv6
signalfd
TCP, TCPv6
timerfd
UDP, UDPv6
lsfd hides raddr= if UDP.RADDR is 0.0.0.0 and UDP.RPORT is 0.
UDP-LITE, UDPLITEv6
UNIX-STREAM
UNIX
Note that (deleted) markers are removed
from this column. Refer to KNAME, DELETED, or XMODE to
know the readability of the file from the file system.
NETLINK.GROUPS <число>
NETLINK.LPORT <число>
NETLINK.PROTOCOL <рядок>
NLINK <число>
NS.NAME <рядок>
NS.TYPE <рядок>
OWNER <рядок>
PACKET.IFACE <рядок>
PACKET.PROTOCOL <рядок>
PARTITION <рядок>
PID <число>
PIDFD.COMM <рядок>
PIDFD.NSPID <рядок>
Quoted from kernel/fork.c of Linux source tree:
If pid namespaces are supported then this function will also print the pid of a given pidfd refers to for all descendant pid namespaces starting from the current pid namespace of the instance, i.e. the Pid field and the first entry in the NSpid field will be identical.
Note that this differs from the Pid and NSpid fields in
/proc/<pid>/status where Pid and NSpid are always shown relative to
the pid namespace of the procfs instance.
PIDFD.PID <число>
PING.ID <`число`>
POS <число>
RAW.PROTOCOL <число>
RDEV <рядок>
SIGNALFD.MASK <рядок>
SIZE <число>
SOCK.LISTENING <булеве-значення>
SOCK.NETS <число>
SOCK.PROTONAME <рядок>
SOCK.SHUTDOWN <рядок>
[-r?]
[-w?]
SOCK.STATE <рядок>
SOCK.TYPE <рядок>
SOURCE <рядок>
STTYPE <рядок>
TCP.LADDR <рядок>
TCP.LPORT <число>
TCP.RADDR <рядок>
TCP.RPORT <число>
TID <число>
TIMERFD.CLOCKID <рядок>
TIMERFD.INTERVAL <число>
TIMERFD.REMAINING <число>
PTMX.TTY-INDEX <число>
TUN.IFACE <рядок>
TYPE <рядок>
If lsfd gets an error when calling a syscall to know about a target file descriptor, lsfd fills this column for it with ERROR.
UDP.LADDR <рядок>
UDP.LPORT <число>
UDP.RADDR <рядок>
UDP.RPORT <число>
UDPLITE.LADDR <рядок>
UDPLITE.LPORT <число>
UDPLITE.RADDR <рядок>
UDPLITE.RPORT <число>
UID <число>
UNIX.PATH <рядок>
USER <рядок>
VSOCK.LADDR <рядок>, VSOCK.RADDR <рядок>
Well-known CIDs will be decoded: “*”, “hypervisor”, “local”, or “host”. Well-known ports will be decoded: “*”.
VSOCK.LCID <число>, VSOCK.RCID <число>
VSOCK.LPORT <число>, VSOCK.RPORT <число>
XMODE <рядок>
[-r]
[-w]
[-x]
[-D]
[-Ll]
[-m]
ПРИКЛАДИ ФІЛЬТРІВ
У lsfd передбачено декілька параметрів для фільтрування. У більшості випадків вам достатньо буде знань щодо параметра -Q (або --filter). У поєднанні з параметром -o (або*--output*) ви можете налаштувати виведення даних бажаним чином.
Вивести список файлів, які пов’язано із процесами PID 1 та PID 2:
# lsfd -Q '(PID == 1) or (PID == 2)'
Те саме в інший спосіб
# lsfd -Q '(PID == 1) || (PID == 2)'
Те саме, але в ефективніший спосіб
# lsfd --pid 1,2
Пробілами можна користуватися замість коми
# lsfd --pid '1 2'
Використати pidof(1) для списку файлів, які пов’язано із "firefox":
# lsfd --pid "$(pidof firefox)"
Вивести перший дескриптор файла, який відкрито процесу PID 1:
# lsfd -Q '(PID == 1) and (FD == 1)'
Те саме в інший спосіб
# lsfd -Q '(PID == 1) && (FD == 1)'
Список усіх запущених виконуваних файлів
# lsfd -Q 'ASSOC == "exe"'
Те саме в інший спосіб
# lsfd -Q 'ASSOC eq "exe"'
Те саме, але вивести лише назви файлів
# lsfd -o NAME -Q 'ASSOC eq "exe"' | sort -u
Список вилучених файлів, які пов’язано із процесами
# lsfd -Q 'DELETED'
Список незвичайних файлів
# lsfd -Q 'TYPE != "REG"'
Список блокових пристроїв
# lsfd -Q 'DEVTYPE == "blk"'
Виконати те саме завдання, але для стовпчика TYPE:
# lsfd -Q 'TYPE == "BLK"'
Вивести список файлів, у назвах яких є каталог «dconf»:
# lsfd -Q 'NAME =~ ".\*/dconf/.*"'
Вивести список файлів, які відкрито у віртуальній машині QEMU:
# lsfd -Q '(COMMAND =~ ".\*qemu.*") and (FD >= 0)'
List timerfd files expired within 0.5 seconds:
# lsfd -Q '(TIMERFD.remaining < 0.5) and (TIMERFD.remaining > 0.0)'
Вивести список процесів, що обмінюються даними за допомогою потокових сокетів unix:
# lsfd -Q 'TYPE == "UNIX-STREAM" && UNIX.PATH =~ ".+"' -oUNIX.PATH,PID,COMMAND,FD,SOCK.STATE,ENDPOINTS
Вивести список процесів, що обмінюються даними за допомогою вказаного сокета unix:
# lsfd -Q 'TYPE == "UNIX-STREAM" && UNIX.PATH == "@/tmp/.X11-unix/X0"' -oUNIX.PATH,PID,COMMAND,FD,SOCK.STATE,ENDPOINTS
КОНТРПРИКЛАДИ
Повідомити про кількість дескрипторів сокетів netlink та дескрипторів сокетів unix:
# lsfd --summary=only \ -C 'netlink sockets':'(NAME =~ "NETLINK:.*")' \ -C 'unix sockets':'(NAME =~ "UNIX:.*")' VALUE COUNTER 57 netlink sockets 1552 unix sockets
Та сама дія, але виведення у форматі 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" } ] }
ЖУРНАЛ
lsfd є частиною пакунка util-linux, починаючи з версії 2.38.
АВТОРИ
Masatake YAMATO <yamato@redhat.com>, Karel Zak <kzak@redhat.com>
ТАКОЖ ПЕРЕГЛЯНЬТЕ
bpftool(8), bps(8), lslocks(8), lsof(8), pidof(1), proc(5), scols-filter(5), socket(2), ss(8), stat(2), vsock(7)
ЯК НАДІСЛАТИ ЗВІТ ПРО ВАДИ
Для звітування щодо вад скористайтеся системою стеження за вадами https://github.com/util-linux/util-linux/issues
ДОСТУП ДО ПРОГРАМИ
Програма lsfd є частиною пакунка util-linux, який можна отримати з архіву ядра Linux https://www.kernel.org/pub/linux/utils/util-linux/.
2025-03-29 | util-linux 2.41 |