LSFD(1)

الاسم
lsfd - سرد واصفات الملفات

موجز

lsfd [خيار]

الوصف

صُمم lsfd ليكون بديلاً حديثاً لـ lsof(8) على أنظمة لينكس. وبخلاف lsof، فإن lsfd متخصص في نواة لينكس؛ حيث يدعم ميزات لينكس الخاصة مثل مساحات الأسماء (namespaces) برمجية أبسط. لا يعد lsfd بديلاً مطابقاً لـ lsof؛ فهما يختلفان في واجهة سطر الأوامر وتنسيقات الخرج.

إن الخرج المبدئي عرضة للتغيير. لذا، كلما أمكن، يجب تجنب استخدام المخرجات المبدئية في نصوصك البرمجية. حدد دائماً الأعمدة المتوقعة صراحةً باستخدام --output columns-list في البيئات التي تتطلب خرجاً مستقراً.

يستخدم lsfd مكتبة Libsmartcols لتنسيق الخرج وترشيحه. راجع وصف خيار --output لتخصيص تنسيق الخرج، وخيار --filter للترشيح. استخدم lsfd --list-columns للحصول على قائمة بكافة الأعمدة المتاحة.

الخيارات

-l، --threads
    السرد على مستوى الخيوط (threads).

-J، --json
    استخدم تنسيق مخرجات JSON.

-n، --noheadings
    لا تطبع الترويسات.

-o، --output قائمة
    حدد أعمدة المخرجات المراد طباعتها. راجع قسم OUTPUT COLUMNS لمعرفة تفاصيل الأعمدة المتاحة.

    يمكن توسيع قائمة الأعمدة المبدئية إذا حُددت قائمة في التنسيق +قائمة (مثال: lsfd -o +DELETED).

-r، --raw
    استخدم تنسيق المخرجات الخام.

--notruncate
    لا تبتر النص في الأعمدة.

-p, --pid list
    يجمع المعلومات للعمليات المحددة فقط. list هي قائمة بمعرفات PID مفصولة بفواصل. انظر أيضاً FILTER EXAMPLES.

-i[4|6], --inet[=4|=6]
    اسرد مقابس IPv4 و/أو مقابس IPv6 فقط.

-Q, --filter expression
    يطبع فقط الملفات التي تطابق الشرط الممثل في التعبير expression. انظر أيضاً ‎scols-filter(5)‎ و FILTER EXAMPLES.

    يمكن استخدام الخيار ‎-Q‎ مع معرف PID (مثلاً: ‎-Q PID==1‎) والخيار ‎-p‎ (مثلاً: ‎-p 1‎) لتحقيق نفس النتيجة، ولكن استخدام الخيار ‎-p‎ أكثر كفاءة بكثير لأنه يعمل في مرحلة معالجة أبكر بكثير من الخيار ‎-Q‎.

-C، --counter لصيقة:‎تعبير_تصفية
    عرف عدادًا مخصصًا يُستخدم في مخرجات --summary. ينشئ lsfd عدادًا باسم لصيقة. أثناء جلب المعلومات، يعد lsfd الملفات التي تطابق تعبير_تصفية، ويخزن العدد المحصى في العداد المسمى لصيقة. يُطبق lsfd المرشحات المعرفة بخيارات --filter قبل العد؛ والملفات المستثناة بواسطة المرشحات لا تُعد.

    انظر ‎scols-filter(5)‎ حول filter_expr. يجب ألا تتضمن اللصيقة label المحرف { ولا المحرف : . يمكنك تعريف عدادات متعددة بتحديد هذا الخيار عدة مرات. انظر أيضاً COUNTER EXAMPLES.

--summary[=mode]
    يتحكم هذا الخيار في أسطر ملخص المخرجات. المعامل الاختياري mode يمكن أن يكون only، أو append، أو never. إذا حُذف المعامل mode، فإنه يكون only مبدئياً.

    يُبلغ الملخص عن العدادات. يتكون العداد من وسم وقيمة صحيحة. --counter هو الخيار لتعريف العداد. إذا لم يعرف المستخدم أي عداد، يستخدم lsfd تعريفات العدادات المدمجة مسبقًا (العدادات المبدئية) لإنشاء مخرجات الملخص.

    تنبيه: استخدام --summary و --json قد يؤدي لعطب المخرجات. فقط الجمع بين --summary=only و --json هو الصحيح.

--debug-filter
    تخلص من بنية البيانات الداخلية للمرشح واخرج. هذا مفيد لمطوري lsfd فقط.

--dump-counters
    تخلص من تعريف العدادات المستخدمة في مخرجات --summary.

--hyperlink[=متى]
    اطبع المسارات كروابط تشعبية للطرفية. يمكن أن يكون معامل متى الاختياري always أو never أو auto. وإذا حُذف المعامل، فسيُضبط مبدئياً على auto، مما يعني أن الروابط التشعبية ستُستخدم فقط عندما يذهب المخرج إلى طرفية.

-H، --list-columns
    يسرد الأعمدة التي يمكن تحديدها بالخيار ‎--output‎. يمكن استخدامه مع ‎--json‎ أو ‎--raw‎ للحصول على القائمة بتنسيق مقروء آلياً.

-h، --help
    اعرض نص المساعدة ثم اخرج.

-V، --version
    اعرض الإصدار واخرج.

البيئة

LIBSMARTCOLS_DEBUG=all
    يُفعّل مخرجات تصحيح أخطاء libsmartcols.

LIBSMARTCOLS_DEBUG_PADDING=on
    يستخدم محارف حشو مرئية.

أعمدة المخرجات

لكل عمود نوع. تحاط الأنواع بالعلامتين < و >.

تنبيه: أسماء الأعمدة وأنواعها ليست مستقرة بعد. قد تُغيّر في الإصدارات المستقبلية.

AINODECLASS <سلسلة_نصية>
    فئة الـ inode المجهول.

ASSOC <سلسلة_نصية>
    الارتباط بين الملف والعملية.

BLKDRV <سلسلة_نصية>
    اسم تعريف الجهاز الكتلي الذي حُلل بواسطة /proc/devices.

BPF-MAP.ID <رقم>
    معرف خريطة Bpf.

BPF-MAP.TYPE <سلسلة_نصية>
    الاسم الناتج عن فك ترميز نوع خريطة bpf.

BPF-MAP.TYPE.RAW <رقم>
    نوع خريطة Bpf (خام).

BPF.NAME <سلسلة_نصية>
    اسم كائن Bpf.

BPF-PROG.ID <رقم>
    معرف برنامج Bpf.

BPF-PROG.TAG <سلسلة_نصية>
    وسم برنامج Bpf.

BPF-PROG.TYPE <سلسلة_نصية>
    الاسم الذي فُك ترميزه لنوع برنامج bpf.

BPF-PROG.TYPE.RAW <رقم>
    نوع برنامج Bpf (خام).

CHRDRV <سلسلة_نصية>
    اسم مشغل جهاز محرفي تم حله بواسطة /proc/devices.

COMMAND <سلسلة_نصية>
    أمر العملية التي تفتح الملف.

DELETED <منطقي>
    إمكانية الوصول من نظام الملفات.

DEV <سلسلة_نصية>
    معرف الجهاز الذي يحتوي على الملف.

DEVTYPE <سلسلة_نصية>
    نوع الجهاز (blk أو char أو nodev).

ENDPOINTS <سلسلة_نصية>
    معلومات نقاط نهاية IPC المتصلة مع fd.

    يجمع lsfd نقاط النهاية داخل العمليات التي يفحصها lsfd؛ وقد يفتقد lsfd بعض نقاط النهاية إذا حُصرت العمليات باستخدام الخيار -p.

    يعتمد تنسيق العمود على الكائن المرتبط بـ fd:

    نوع FIFO, نوع mqueue, مصادر ptmx و pts
        PID,COMMAND,ASSOC[-r][-w]

        تمثل الأحرف الأخيرة ([-r][-w]) وضع القراءة و/أو الكتابة لنقطة النهاية.

    نوع eventfd
        PID,COMMAND,ASSOC

    UNIX
        نفس عمل UNIX-STREAM.

        داخل حاوية، قد لا يملأ lsfd عمود ENDPOINTS. يستخدم lsfd الأداة ‎sock_diag(7)‎ لجمع معلومات حول نهايات اتصال UNIX. قد يحد SELinux من استخدام sock_diag داخل الحاوية. يمكنك إزالة هذا القيد بضبط القيمة 1 للمتغير المنطقي virt_sandbox_use_netlink. انظر ‎container_selinux(8)‎ لمزيد من التفاصيل.

    UNIX-STREAM
        PID,COMMAND,ASSOC[-r?][-w?]

        بخصوص الأحرف الأخيرة ([-r?][-w?])، راجع وصف SOCK.SHUTDOWN.

EVENTFD.ID <رقم>
    معرف Eventfd.

EVENTPOLL.TFDS <سلسلة_نصية>
    واصفات الملفات المستهدفة بواسطة ملف eventpoll.

FD <رقم>
    واصف ملف للملف.

FLAGS <سلسلة_نصية>
    الأعلام المحددة عند فتح الملف.

FUID <رقم>
    رقم معرف المستخدم لمالك الملف.

INET.LADDR <سلسلة_نصية>
    عنوان IP المحلي.

INET.RADDR <سلسلة_نصية>
    عنوان IP البعيد.

INET6.LADDR <سلسلة_نصية>
    عنوان IP6 المحلي.

INET6.RADDR <سلسلة_نصية>
    عنوان IP6 البعيد.

INODE <رقم>
    رقم العقدة المفهرسة (Inode).

INOTIFY.INODES <سلسلة_نصية>
    نسخة مُعقّبة من INOTIFY.INODES.RAW. تنسيق العنصر هو رقم-العقدة-المفهرسة,مصدر-العقدة-المفهرسة.

INOTIFY.INODES.RAW <سلسلة_نصية>
    قائمة بالعقد المفهرسة المراقبة. تنسيق العنصر هو رقم-العقدة-المفهرسة,رئيسي-الجهاز:ثانوي-الجهاز.

KNAME <سلسلة_نصية>
    اسم الملف الخام المستخرج من /proc/معرّف-العملية/fd/fd أو /proc/معرّف-العملية/map_files/region.

KTHREAD <منطقي>
    ما إذا كانت العملية خيط نواة أم لا.

MAJ:MIN <سلسلة_نصية>
    معرف الجهاز للملفات الخاصة، أو معرف الجهاز الذي يحتوي الملف.

MAPLEN <رقم>
    طول تخطيط الملف (بالصفحات).

MISCDEV <سلسلة_نصية>
    اسم جهاز محرفي متنوع تم حله بواسطة /proc/misc.

MNTID <رقم>
    معرف الوصل.

MODE <سلسلة_نصية>
    وضع الوصول (rwx).

NAME <سلسلة_نصية>
    نسخة مُعقّبة من KNAME. وهي تشبه KNAME غالباً.

    بعض الملفات لها تنسيقات ومصادر معلومات خاصة:

    AF_VSOCK
        state=SOCK.STATE type=SOCK.TYPE laddr=VSOCK.LADDR[ raddr=VSOCK.RADDR]

        raddr لا يظهر لمقابس الاستماع.

    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[ devnetns=TUN.DEVNETNS][ socknetns=SOCK.NETNS]

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

    PACKET
        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/fd.

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

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

    ptmx
        tty-index=PTMX.TTY-INDEX

        يستخرج lsfd المَعلمة PTMX.TTY-INDEX من /proc/معرّف-العملية/fdinfo/fd.

    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]]]

    signalfd
        mask=SIGNALFD.MASK

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

    timerfd
        clockid=TIMERFD.CLOCKID[ remaining=TIMERFD.REMAINING [ interval=TIMERFD.INTERVAL]]

    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

    لاحظ أن علامات (deleted) تُزال من هذا العمود. راجع KNAME، أو DELETED، أو XMODE لمعرفة قابلية قراءة الملف من نظام الملفات.

NETLINK.GROUPS <رقم>
    مجموعات بث Netlink المتعدد.

NETLINK.LPORT <رقم>
    معرف منفذ Netlink المحلي.

NETLINK.PROTOCOL <سلسلة_نصية>
    ميفاق Netlink.

NLINK <رقم>
    عدد الروابط.

NS.NAME <سلسلة_نصية>
    اسم (NS.TYPE:[INODE]) مساحة الأسماء المحددة مع الملف.

NS.TYPE <سلسلة_نصية>
    نوع مساحة الأسماء المحددة مع الملف. النوع هو mnt أو cgroup أو uts أو ipc أو user أو pid أو net أو time أو unknown.

OWNER <سلسلة_نصية>
    مالك الملف.

PACKET.IFACE <سلسلة_نصية>
    اسم الواجهة المرتبطة بمقبس الحزمة (packet socket).

PACKET.PROTOCOL <سلسلة_نصية>
    اسم ميفاق L2 المرتبط بمقبس الحزم (مفكوك الترميز).

PACKET.PROTOCOL.RAW <رقم>
    رقم ميفاق L2 المرتبط بمقبس الحزم (خام).

PARTITION <سلسلة_نصية>
    اسم جهاز كتلي حُلّ بواسطة /proc/partition.

PID <رقم>
    معرف العملية (PID) التي تفتح الملف.

PIDFD.COMM <سلسلة_نصية>
    أمر العملية المستهدفة بواسطة pidfd.

PIDFD.NSPID <سلسلة_نصية>
    قيمة حقل NSpid في /proc/معرّف-العملية/fdinfo/fd الخاص بـ pidfd.

    مقتبس من kernel/fork.c في شجرة مصدر لينكس:

        إذا كانت مساحات أسماء pid متاحة، فستطبع هذه الدالة أيضًا الـ pid الذي يشير إليه pidfd معين لجميع مساحات أسماء pid المنحدرة بدءًا من مساحة أسماء pid الحالية للمثيل، أي أن حقل Pid والمدخل الأول في حقل NSpid سيكونان متطابقين.

        لاحظ أن هذا يختلف عن حقلي Pid و NSpid في /proc/<pid>/status حيث يُعرض Pid و NSpid دائمًا بالنسبة لمساحة أسماء pid الخاصة بمثيل procfs.

PIDFD.PID <رقم>
    معرف العملية (PID) المستهدفة بواسطة pidfd.

PING.ID <`number`>
    معرف طلب صدى ICMP المستخدم على مقبس PING.

POS <رقم>
    موضع الملف.

RAW.PROTOCOL <سلسلة نصية>
    اسم ميفاق المقبس الخام (مفكوك الترميز).

        Note

        نوع بيانات هذا العمود كان <عدد> من الإصدار v2.39 إلى v2.41.

RAW.PROTOCOL.RAW <رقم>
    رقم ميفاق المقبس الخام (خام).

RDEV <سلسلة_نصية>
    معرف الجهاز (إذا كان ملفًا خاصًا).

SIGNALFD.MASK <سلسلة_نصية>
    الإشارات المقنعة.

SIZE <رقم>
    حجم الملف.

SOCK.LISTENING <منطقي>
    مقبس استماع.

SOCK.NETS <رقم>
    فهرس العقدة (inode) الذي يحدد نطاق تسمية الشبكة الذي ينتمي إليه المقبس.

SOCK.PROTONAME <سلسلة_نصية>
    اسم الميفاق.

SOCK.SHUTDOWN <سلسلة_نصية>
    حالة إغلاق المقبس.

    [-r?]
        إذا كان الرمز الأول هو r، فإن الاستقبال مسموح به. وإذا كان -، فإن الاستقبال غير مسموح به. وإذا كان ?، فإن الحالة مجهولة.

    [-w?]
        إذا كان الرمز الثاني هو w، فإن الإرسال مسموح به. وإذا كان -، فإن الإرسال غير مسموح به. وإذا كان ?، فإن الحالة مجهولة.

SOCK.STATE <سلسلة_نصية>
    حالة المقبس.

SOCK.TYPE <سلسلة_نصية>
    نوع المقبس. النوع هنا يعني المعامل الثاني لاستدعاء النظام socket:

        • stream

        • dgram

        • raw

        • rdm

        • seqpacket

        • dccp

        • packet

SOURCE <سلسلة_نصية>
    نظام الملفات، أو القسم، أو الجهاز الذي يحتوي على الملف. بالنسبة للارتباط الذي تظهر فيه القيمة ERROR في عمود TYPE، يملأ lsfd هذا العمود بـ syscall:_errno_.

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 البعيد.

TID <رقم>
    معرف الخيط (Thread ID) للعملية التي تفتح الملف.

TIMERFD.CLOCKID <سلسلة_نصية>
    Clockid.

TIMERFD.INTERVAL <رقم>
    الفترة.

TIMERFD.REMAINING <رقم>
    الوقت المتبقي.

PTMX.TTY-INDEX <رقم>
    فهرس TTY للطرف المقابل.

TUN.DEVNETNS <عدد>
    فهرس العقدة (inode) الذي يحدد نطاق تسمية الشبكة الذي ينتمي إليه الجهاز.

TUN.IFACE <سلسلة_نصية>
    واجهة الشبكة الموجودة خلف جهاز tun.

TYPE <سلسلة_نصية>
    النسخة المجهزة من STTYPE. وهي مطابقة لـ STTYPE مع استثناءات. بالنسبة لـ SOCK، تُطبع قيمة SOCK.PROTONAME. وبالنسبة لـ UNKN، تُطبع قيمة AINODECLASS إذا كان SOURCE هو anon_inodefs.

    إذا واجه lsfd خطأ عند استدعاء نظام لمعرفة معلومات عن واصف ملف مستهدف، يملأ lsfd هذا العمود بالقيمة ERROR.

UDP.LADDR <سلسلة_نصية>
    عنوان IP المحلي ومنفذ UDP المحلي.

UDP.LPORT <رقم>
    منفذ UDP المحلي.

UDP.RADDR <سلسلة_نصية>
    عنوان IP البعيد ومنفذ UDP البعيد.

UDP.RPORT <رقم>
    منفذ UDP البعيد.

UDPLITE.LADDR <سلسلة_نصية>
    عنوان IP المحلي ومنفذ UDPLite المحلي.

UDPLITE.LPORT <رقم>
    منفذ UDP المحلي.

UDPLITE.RADDR <سلسلة_نصية>
    عنوان IP البعيد ومنفذ UDPLite البعيد.

UDPLITE.RPORT <رقم>
    منفذ UDP البعيد.

UID <رقم>
    رقم معرف المستخدم.

UNIX.IPEER < عدد >
    رقم Inode للقرين في مقبس نطاق UNIX.

    إذا كان lsfd يعمل داخل حاوية، فقد لا يملأ عمود UNIX.IPEER. انظر وصف UNIX في عمود ENDPOINTS لمزيد من التفاصيل.

UNIX.PATH <سلسلة_نصية>
    مسار نظام الملفات لمقبس نطاق UNIX.

USER <سلسلة_نصية>
    مستخدم العملية.

VSOCK.LADDR <سلسلة_نصية>, VSOCK.RADDR <سلسلة_نصية>
    عنوان VSOCK المحلي. تنسيق العنصر هو VSOCK.LCID:VSOCK.LPORT.

    سيُجرى فك ترميز معرفات سياق (CIDs) المعروفة: “*”، أو “hypervisor”، أو “local”، أو “host”. كما سيُجرى فك ترميز المنافذ المعروفة: “*”.

VSOCK.LCID <رقم>, VSOCK.RCID <رقم>
    معرفات سياق VSOCK المحلية والبعيدة.

VSOCK.LPORT <رقم>, VSOCK.RPORT <رقم>
    منافذ VSOCK المحلية والبعيدة.

XMODE <سلسلة_نصية>
    النسخة الموسعة من MODE. قد يكبر هذا العمود؛ حيث يمكن إلحاق أحرف جديدة بـ XMODE عندما يدعم lsfd حالة جديدة لواصفات الملفات و/أو تخطيطات الذاكرة.

    [-r]
        مفتوح أو مخطط للقراءة. هذا موجود أيضًا في MODE.

    [-w]
        فُتح أو خُطط للكتابة. هذا موجود أيضاً في MODE.

    [-x]
        خُطط لتنفيذ الكود. هذا موجود أيضاً في MODE.

    [-D]
        حُذف من نظام ملفات. انظر أيضاً DELETED.

    [-Ll]
        أُقفل أو أُجّر. يمثل l قراءة، أو قفلاً مشتركاً أو إيجار قراءة. ويمثل L كتابة أو قفلاً حصرياً أو إيجار كتابة. إذا أُخذت أقفال أو إيجارات القراءة/المشتركة والكتابة/الحصرية معاً بواسطة واصف ملف، فسيُستخدم L كعلامة.

    [-m]
        متعدد الإرسال (Multiplexed). إذا كان واصف الملف مستهدفاً بواسطة ملف eventpoll أو استدعاءات النظام الكلاسيكية لتعدد الإرسال (‎select(2)‎، و ‎pselect(2)‎، و ‎poll(2)‎، و ‎ppoll(2)‎)، تُضبط علامة البت هذه. لاحظ أنه إذا قوطع استدعاء للنظام الكلاسيكي، فقد يفشل lsfd في وضع علامة m على واصفات الملفات المراقبة بواسطة ذلك الاستدعاء. انظر ‎restart_syscall(2)‎.

أمثلة المرشحات

يحتوي 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)'

اسرد ملفات timerfd المنتهية خلال 0.5 ثانية:

    # lsfd -Q '(TIMERFD.remaining < 0.5) and (TIMERFD.remaining > 0.0)'

اسرد العمليات التي تتواصل عبر مقابس unix stream:

    # lsfd  -Q 'TYPE == "UNIX-STREAM" && UNIX.PATH =~ ".+"' -oUNIX.PATH,PID,COMMAND,FD,SOCK.STATE,ENDPOINTS

اسرد العمليات التي تتواصل عبر مقبس unix stream محدد:

    # 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 منذ الإصدار v2.38.

المؤلفين

انظر أيضاً

bpftool(8)، bps(8)، lslocks(8)، lsof(8)، pidof(1)، proc(5)، scols-filter(5)، socket(2)، ss(8)، stat(2)، vsock(7)

التبليغ عن الأخطاء

لتقارير العِلل، استخدم

التوفر

الأمر lsfd جزء من حزمة util-linux التي يمكن تنزيلها من