Scroll to navigation

LSFD(1) Корисничке наредбе LSFD(1)

НАЗИВ

lsfd - исписује описнике датотека

УВОД

lsfd [опција]

ОПИС

lsfd је замишљено да буде савремена замена за lsof(8) на Линукс системима. За разлику од lsof-а, lsfd је специјализован за Линукс кернел; подржава Линуксу специфичне функције као што су називни простори са једноставнијим кодом. lsfd није уметнута замена за lsof; разликују се у линији наредби сучељу и излазним форматима.

Основни излаз је субјекат за измену. Тако да кад год је могуће, треба да избегавате коришћење основних излаза у вашим скриптама. Увек изричито дефинишите очекиване колоне користећи --output списак-колона у окружењима у којима се захтева стабилан излаз.

lsfd користи „Libsmartcols“ за форматирање излаза и филтрирање. Видите опис --output опције за прилагођавање формата излаза, и опцију --filter за филтрирање. Користите lsfd --help да добијете списак свих доступних колона.

ОПЦИЈЕ

-l, --threads

Исписује ниво у нитима.

-J, --json

Користи ЈСОН формат излаза.

-n, --noheadings

Не исписује заглавља.

-o, --output списак

Наводи које колоне излаза ће се исписати. Видите одељак КОЛОНЕ ИЗЛАЗА за појединости о доступним колонама.

Основни списак колона се може проширити ако је списак наведен у формату +списак (нпр., lsfd -o +DELETED).

-r, --raw

Користи сирови излазни формат.

--notruncate

Не скраћује текст у колонама.

-p, --pid пидови

Прикупља информације само за наведене процесе. pids је списак пид-ова. Зарез или празнине се могу користити као раздвајачи. Можете да користите ову опцију са pidof(1). Видите ПРИМЕРИ ФИЛТЕРА.

Обе опције, како опција -Q са изразом укључујући ПИД, тј. „-Q (ПИД == 1)“, тако и опција -p, тј. „-p 1“, могу исписати исти излаз, али коришћење опције -p је делотворније јер опција -p ради на много ранијем стадијуму обраде него опција -Q.

-i[4|6], --inet[=4|=6]

Исписује само IPv4 и/или IPv6 прикључнице.

-Q, --filter израз

Исписује само датотеке које одговарају услову представљеном са израз. Видите такође ПРИМЕРИ ФИЛТЕРА.

-C, --counter натпис:филтер_израз

Дефинише произвољни бројач коришћен у --summary излазу. lsfd прави бројач под називом натпис. За време прикупљања информација, lsfd броји датотеке које одговарају филтер_изразу, и складишти избројани број у бројач под називом натпис. lsfd примењује филтере дефинисане опцијама --filter пре бројања; датотеке искључене филтерима се не броје.

Видите ИЗРАЗ ФИЛТЕРА о изразу_филтера. натпис не треба да обухвати „{“ нити „:“. Можете да дефинишете више бројача навођењем ове опције више пута.

Видите такође ПРИМЕРИ БРОЈАЧА.

--summary[=када]

Ова опција контролише излаз сажетка редова. Опционални аргумент када може бити only, append ili never. Ако је аргумент када изостављен, подразумева се only.

Бројачи извештаја сажетка. Бројач се састоји од натписа и целобројне вредности. --counter је опција за дефинисање бројача. Ако корисник не дефинише бројач, lsfd користи дефиниције унапред девинисаних уграђених бројача (основни бројачи) да сачини излаз сажетка.

ОПРЕЗ: Коришћење --summary и --json може учинити излаз оштећеним. Исправно је само комбиновање --summary=only и --json.

--debug-filter

Исписује структуру унутрашњих података за филтер и излази. Ово је од користи само lsfd програмерима.

--dump-counters

Исписује дефиницију бројача коришћених у излазу --summary.

-h, --help

Приказује текст помоћи и излази.

-V, --version

Исписује издање и излази.

КОЛОНЕ ИЗЛАЗА

Свака колона има врсту. Врсте су између < и >.

ОПРЕЗ: Називи и врсте колона нису стабилни још увек. Могу се изменити у будућим издањима.

AINODECLASS <„ниска“>

Класа анонимног и-чвора.

ПРИДРУ <„ниска“>

Придруживање између датотеке и процеса.

БЛКДРВ <„ниска“>

Назив уграђеног програма блок уређаја решеног од стране „/proc/devices“.

ЗНКДРВ <„ниска“>

Назив уграђеног програма знаковног уређаја решеног од стране „/proc/devices“.

НАРЕДБА <„ниска“>

Наредба процеса који отвара датотеку.

ОБРИСАНО <„логичка“>

Досежност са система датотека.

УРЕЂ <„ниска“>

ИД уређаја који садржи датотеку.

ВРСТАУРЕЂ <„ниска“>

Врста уређаја (blk, char, или nodev).

КРАЈЊАТАЧКА <„ниска“>

Информације IPC крајњих тачака објављених са описником датотеке. Формат колоне зависи од објекта придруженог са описником датотеке.

ПУПИ врста.

ПИД,НАРЕДБА,ПРИДРУЖ[-r][-w]

Последњи знак ([-r][-w]) представља режим читања и/или писања крајње тачке.

lsfd прикупља крајње тачке у процесима које lsfd скенира; lsfd може промашити неке крајње тачке ако ограничите процесе опцијом -p.

ОД <„број“>

Описник датотеке за датотеку.

ЗАСТАВИЦЕ <„ниска“>

Заставице наведене приликом отварања датотеке.

ДУИД <„број“>

ИД број корисника власника датотеке.

ИНЕТ.ЛАДР <„ниска“>

Локална ИП адреса.

ИНЕТ.УАДР <„ниска“>

Удаљена ИП адреса.

ИНЕТ6.ЛАДР <„ниска“>

Локална ИП6 адреса.

ИНЕТ6.УАДР <„ниска“>

Удаљена ИП6 адреса.

И-ЧВОР <„број“>

Број и-чвора.

НАЗИВ <„ниска“>

Сирови назив датотеке извучен из „/proc/“пид„/fd/“од или „/proc/“пид„/map_files/“регион.

КНИТ <„логичка“>

Да ли је процес нит кернела или није.

MAJ:MIN <„ниска“>

ИД уређаја за специјални, или ИД уређаја који садржи датотеку.

МАПДУЖ <„број“>

Дужина мапирања датотеке (у страници).

РАЗНУРЕЂ <„ниска“>

Назив разног знаковног уређаја ког решава „/proc/misc“.

ИДКЧЊА <„број“>

ИД качења.

РЕЖИМ <„ниска“>

Режим приступа (rwx).

НАЗИВ <„ниска“>

Обрађено издање КНАЗИВ-а. Углавном је исто као КНАЗИВ.

Неке датотеке имају посебне формате и изворе информација:

МРЕЖНАВЕЗА

protocol=NETLINK.PROTOCOL[ lport=NETLINK.LPORT[ group=NETLINK.GROUPS]]

ПАКЕТ

type=SOCK.TYPE[ protocol=PACKET.PROTOCOL][ iface=PACKET.IFACE]

pidfd

pid=TARGET-PID comm=TARGET-COMMAND nspid=TARGET-NSPIDS

lsfd ИЗВЛАЧИ TARGET-PID И TARGET-NSPIDS из „/proc/“пид„/fdinfo/“од.

ПИНГ

state=SOCK.STATE[ id=PING.ID][ laddr=INET.LADDR [ raddr=INET.RADDR]]

ПИНГв6

state=SOCK.STATE[ id=PING.ID][ laddr=INET6.LADDR [ raddr=INET6.RADDR]]

RAW

state=SOCK.STATE[ protocol=RAW.PROTOCOL [ laddr=INET.LADDR [ raddr=INET.RADDR]]]

RAWv6

state=SOCK.STATE[ protocol=RAW.PROTOCOL [ laddr=INET6.LADDR [ raddr=INET6.RADDR]]]

TCP, TCPv6

state=SOCK.STATE[ laddr=TCP.LADDR [ raddr=TCP.RADDR]]

UDP, UDPv6

state=SOCK.STATE[ laddr=UDP.LADDR [ raddr=UDP.RADDR]]

lsfd скрива „raddr=“ ако је UDP.RADDR „0.0.0.0“ и UDP.RPORT 0.

UDP-LITE, UDPLITEv6

state=SOCK.STATE[ laddr=UDPLITE.LADDR [ raddr=UDPLITE.RADDR]]

UNIX-STREAM

state=SOCK.STATE[ path=UNIX.PATH]

UNIX

state=SOCK.STATE[ path=UNIX.PATH] type=SOCK.TYPE

МРЕЖНАВЕЗА.ГРУПЕ <„број“>>

Мултикаст групе мрежне везе.

МРЕЖНАВЕЗА.ЛПРИКЉУЧНИК <„број“>>

Ид локалног прикључника мрежне везе.

МРЕЖНАВЕЗА.ПРОТОКОЛ <„ниска“>>

Протокол мрежне везе.

БВЕЗЕ <„број“>

Укупност везе.

НС.НАЗИВ <„ниска“>

Назив (NS.TYPE:[INODE]) називног простора наведеног датотеком.

НС.ВРСТА <„ниска“>

Врста називног простора наведеног датотеком. Врста је „mnt“, „cgroup“, „uts“, „ipc“, „user“, „pid“, „net“, „time“ или „unknown“.

ВЛАСНИК <„ниска“>

Власник датотеке.

ПАКЕТ.IFACE <„ниска“>

Назив сучеља придруженог са прикључницом пакета.

ПАКЕТ.ПРОТОКОЛ <„ниска“>

L3 протокол придружен са прикључницом пакета.

ПАРТИЦИЈА <„ниска“>

Назив блок уређаја како га решава „/proc/partition“.

ПИД <„број“>

ПИД процеса који отвара датотеку.

ОДПИД.НАРЕДБА <„ниска“>

Наредба процеса који је на мети „pidfd“-а.

ОДПИД.НСПИД <„ниска“>

Закон NSpid поља у „/proc/“pid„/fdinfo/“fd „pidfd“-а.

Цитирано из „кернела/fork.c“ стабла избора Линукса:

Ако су пид називни простори подржани, тада ће ова функција такође исписати пид датог „pidfd“-а на који се односи за све подређене пид називне просторе почевши од тренутног пид називног простора примерка, тј. Пид поље и први унос у „NSpid“ пољу биће истоветни.

Имајте на уму да се ово разликује од поља „Pid“ и „NSpid“ у „/proc/<пид>/статус“ где су Пид и НСпид увек приказани у односу на пид називни простор „procfs“ примерка.

ОДПИД.ПИД <„број“>

ПИД процеса који је на мети „pidfd“-а.

ПИНГ.ИД <„број“>

Ид захтева ICMP еха који се користи на PING прикључници.

ПОЛ <„број“>

Положај датотеке.

RAW.PROTOCOL <„број“>

Број протокола сирове прикључнице.

RDEV <„ниска“>

ИД уређаја (ако је посебна датотека).

ВЕЛИЧИНА <„број“>

Величина датотеке.

SOCK.LISTENING <„логика“>

Прикључница ослушкивања.

SOCK.NETS <„број“>

И-чвор који одређује мрежни називни простор где прикључница пришпада.

SOCK.PROTONAME <„ниска“>

Назив протокола.

SOCK.STATE <„ниска“>

Стање прикључнице.

SOCK.TYPE <„ниска“>

Врста прикључница. Овде врста значи други параметар системског позива прикључнице:

•stream

•dgram

•raw

•rdm

•seqpacket

•dccp

•пакет

ИЗВОР <„ниска“>

Систем датотека, партиција или уређај који садржи датотеку.

STTYPE <„ниска“>

Сирове врсте датотека које даје stat(2): BLK, CHR, DIR, FIFO, LINK, REG, SOCK, или UNKN.

TCP.LADDR <„ниска“>

Локална L3 (INET.LADDR или INET6.LADDR) адреса и локални TCP прикључник.

TCP.LPORT <„цео_број>

Локални TCP прикључник.

TCP.RADDR <„ниска“>

Удаљена L3 (INET.RADDR или INET6.RADDR) адреса и удаљени TCP прикључник.

TCP.RPORT <„цео_број“>

Удаљени TCP прикључник.

ТИД <„број“>

ИД нити процеса који отвара датотеку.

ВРСТА <„ниска“>

Обрађено издање „STTYPE“-а. Исто је као STTYPE са изузецима. За ПРИКЉ, исписује вредност за „SOCK.PROTONAME“. За НЕПОЗН, исписује вредност за „AINODECLASS“ ако је ИЗВОР „anon_inodefs“.

UDP.LADDR <„ниска“>

Локална ИП адреса и локални UDP прикључник.

UDP.LPORT <„цео_број“>

Локални UDP прикључник.

UDP.RADDR <„ниска“>

Удаљена ИП адреса и удаљени UDP прикључник.

UDP.RPORT <„цео_број“>

Удаљени UDP прикључник.

UDPLITE.LADDR <„ниска“>

Локална ИП адреса и локални UDPLite прикључник.

UDPLITE.LPORT <„цео_број“>

Локални UDP прикључник.

UDPLITE.RADDR <„ниска“>

Удаљена ИП адреса и удаљени UDPLite прикључник.

UDPLITE.RPORT <„цео_број“>

Удаљени UDP прикључник.

УИД <„број“>

ИД број корисника.

UNIX.ПУТАЊА <„ниска“>

Назив путање система датотека за прикључницу ЈУНИКС домена.

КОРИСНИК <„ниска“>

Корисник процеса.

ИЗРАЗ ФИЛТЕРА

lsfd процењује израз прослеђен опцији --filter сваки пут пре исписивања реда датотеке. lsfd исписује ред само ако је резултат процене „true“.

Израз се састоји од назива колона, литерала и оператора као: „ОБРИСАНО“, „(ПИД == 1)“, „(НАЗИВ == "/etc/passwd")“, „(ПИД == 1) && ОБРИСАНО“. „ОБРИСАНО“, „ПИД“, и „НАЗИВ“ јесу називи колона у примеру. „1“ и „"/etc/passwd"“ су литерали. „==“ и „&&“ су оператори.

Пре евалуације, lsfd замењује називе колона у датом изразу стварним вредностима колоне у реду. Постоје три различите врсте података: „логички“, „ниска“, и „број“. За колоне са врстом „логички“, вредност може бити самостојећа. За вредности „ниска“ и „број“, вредност мора бити операнд или оператор, на пример, „(ПИД == 1)“. Видите „КОЛОНЕ ИЗЛАЗА“ о врстама колона.

Литерал је за директно представљање вредности. Видите BOOLLIT, STRLIT, и NUMLIT. Различите врсте података имају различиту синтаксу литерала.

Оператор ради са једним или два операнда. Оператор има очекивање о врсти података својих операнда. Давање неочекиване врсте података оператору доводи до грешке у синтакси.

Оператори који могу имати два операнда су „and“, „or“, „eq“, „ne“, „le“, „lt“, „ge“, „gt“, „=~“, „!~“. Азбучним редом именовани оператори имају алијасе у Ц-језику: „&&“, „||“, „==“, „!=“, „<“, „⇐“, „>=“, и „>“.

„!“ је једини оператор који може имати један операнд.

„eq“, „ne“, и њихови алијаси очекују да операнди имају исту врсту података. Примена ових оператора даје „логичку“ вредност.

„и“, „или“, „не“ и њихови алијаси очекују да операнди имају „логичку“ врсту података. Примена ових оператора даје „логичку“ вредност.

„lt“, „le“, „gt“, „ge“, и њихови алијаси очекују да операнди имају „бројевну“ врсту података. Примена ових оператора даје „логичку“ вредност.

„=~“ је за поређење регуларног израза; ако ниска са десне стране одговара регуларном изразу на левој страни, резултат је тачан. Операнд са десне стране мора бити литерал ниске. Видите STRLIT о синтакси.

„!~“ је скраћена верзија за „not (STR =~ PAT)“; обрће резултат од „=~“.

Ограничења

Тренутна примена не дефинише предност унутар оператора. Користите ( и ) изричито за груписање подизраза ако ваш израз користи више од два оператора.

О „броју“ уписаних вредности, погон филтера подржава само не-негативне целе бројеве.

Полу-формална синтакса

ИЗРАЗ

ЛОГИЧКИ_ИЗРАЗ

ЛОГИЧКИ_ИЗРАЗ0

КОЛОНА <„логички“> | ЛОГИЧКИ_ЛИТ | ( ЛОГИЧКИ_ИЗРАЗ )

ЛОГИЧКИ_ИЗРАЗ

ЛОГИЧКИ_ИЗРАЗ0 | ЛОГИЧКИ_ОП1 | ЛОГИЧКИ_ОП2 | ЛОГИЧКИ_ОП2BL | ЛОГИЧКИ_ОП2CMP | ЛОГИЧКИ_ОП2REG

КОЛОНА

[_A-Za-z][-_:A-Za-z0-9]*

ЛОГИЧКИ_ОП1

! ЛОГИЧКИ_ИЗРАЗ0 | не ЛОГИЧКИ_ИЗРАЗ0

ИЗР_НИСКЕ

КОЛОНА <„ниска“> | ЛИТ_НИСКЕ

ИЗР_БРОЈА

КОЛОНА <„број“> | ЛИТ_БРОЈА

ЛОГИЧКИ_ЛИТ

тачно | нетачно

ЗНАКОВИ

( [^\] | \\ | \' | \" )*

ЛИТ_НИСКЕ

' ЗНАЦИ ' | " ЗНАЦИ "

ЛИТ_БРОЈА

[1-9][0-9]* | 0

ЛОГИЧКИ_ОП2

ИЗР_НИСКЕ ОП2 ИЗР_НИСКЕ | ИЗР_БРОЈА ОП2 ИЗР_БРОЈА | ИЗР_ЛОГ0 ОП2 ИЗР_ЛОГ0

ОП2

== | eq | != | ne

ЛОГИЧКИ_ОП2BL

ЛОГИЧКИ_ИЗРАЗ0 ОП2BL ЛОГИЧКИ_ИЗРАЗP0

ОП2БЛ

&& | and | || | or

ЛОГИЧКИ_ОП2CMP

NUMEXP OP2CMP NUMEXP

OP2CMP

< | lt | <= | le | > | gt | >= | ge

ЛОГИЧКИ_ОП2РЕГ

STREXP OP2REG STRLIT

OP2REG

=~ | !~

ПРИМЕРИ ФИЛТЕРА

lsfd има неколико опција за филтрирање. У већини случајева, треба да знате за -Q (или --filter) опцију. Комбиноване са -o (или --output) опцијом, можете да прилагодите излаз како желите.

Исписује датотеке придружене са ПИД 1 и ПИД 2 процесима:

# lsfd -Q '(PID == 1) или (PID == 2)'

Ради исто на другачији начин:

# lsfd -Q '(PID == 1) || (PID == 2)'

Ради исто на делотворнији начин:

# lsfd --pid 1,2

Празнине се могу користити уместо зареза:

# lsfd --pid '1 2'

Користи pidof(1) за списак датотека придружених са „firefox“:

# lsfd --pid "$(pidof firefox)"

Исписује 1° описник датотеке отворен ПИД 1 процесом:

# lsfd -Q '(PID == 1) и (FD == 1)'

Ради исто на другачији начин:

# lsfd -Q '(PID == 1) && (FD == 1)'

Исписује све покренуте извршне:

# lsfd -Q 'ASSOC == "exe"'

Ради исто на другачији начин:

# lsfd -Q 'ASSOC eq "exe"'

Чини исто али исписује само називе датотека:

# lsfd -o NAZIV -Q 'ASSOC eq "exe"' | sort -u

Исписује обрисане датотеке придружене процесима:

# lsfd -Q 'DELETED'

Исписује не-регуларне дадотеке

# lsfd -Q 'TYPE != "REG"'

Исписује блок уређаје:

# lsfd -Q 'DEVTYPE == "blk"'

Чини исто са колоном ВРСТА:

# lsfd -Q 'TYPE == "BLK"'

Исписује датотеке укључујући „dconf“ директоријум у њиховим називима:

# lsfd -Q 'NAME =~ ".\*/dconf/.*"'

Исписује датотеке отворене у QEMU виртуелној машини:

# lsfd -Q '(COMMAND =~ ".\*qemu.*") и (FD >= 0)'

Скрива датотеке придружене нитима кернела:

# lsfd -Q '!KTHREAD'

ПРИМЕРИ БРОЈАЧА

Извештава о броју описника прикључнице мрежне везе и о описницима јуникс прикључнице

# lsfd --summary=only \

-C 'netlink sockets':'(NAME =~ "NETLINK:.*")' \
-C 'unix sockets':'(NAME =~ "UNIX:.*")' БРОЈАЧ ВРЕДНОСТИ
57 netlink sockets
1552 unix sockets

Чини исто али исписује у ЈСОН запису:

# 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“ пакета још од v2.38.

АУТОРИ

Masatake YAMATO <yamato@redhat.com>, Karel Zak <kzak@redhat.com>

ПОГЛЕДАЈТЕ ТАКОЂЕ

lsof(8) pidof(1) proc(5) socket(2) stat(2)

ПРИЈАВЉИВАЊЕ ГРЕШАКА

За пријављивање грешака, користите пратиоца грешака на <https://github.com/util-linux/util-linux/issues>.

ДОСТУПНОСТ

Наредба lsfd је део пакета „util-linux“ који се може преузети са Архиве Линукс кернела <https://www.kernel.org/pub/linux/utils/util-linux/>.

2024-02-04 util-linux 2.39.3