opensnoop.bt(8) System Manager's Manual opensnoop.bt(8)

opensnoop.bt - ردیابی فراخوانی‌های سیستمی open()، openat() و openat2() با استفاده از bpftrace/eBPF

opensnoop.bt -- [--depth=<N>] [--errname]

ابزار opensnoop فراخوانی‌های سیستمی open()، openat() و openat2() را ردیابی می‌کند و نشان می‌دهد کدام فرآیندها در تلاش برای باز کردن کدام پرونده‌ها هستند. این ابزار می‌تواند برای تعیین موقعیت پرونده‌های پیکربندی و لاگ، یا عیب‌یابی برنامه‌هایی که با شکست مواجه می‌شوند، به‌ویژه در هنگام راه‌اندازی، مفید باشد.

این ابزار از طریق ردیابی نقطه ردیابی (tracepoint) فراخوانی‌های سیستمی open()، openat() و openat2() کار می‌کند.

از آنجا که این ابزار از BPF استفاده می‌کند، تنها کاربر ریشه (root) می‌تواند از آن استفاده کند.

برای تنظیم حداکثر عمق مسیر پشتیبانی‌شده استفاده می‌شود، مقدار پیش‌فرض ۳۵ است.
نمایش پیام خطا به‌جای errno.

CONFIG_BPF و bcc.

ردیابی تمام فراخوانی‌های سیستمی open()، openat() و openat2():
# opensnoop.bt

شناسه فرآیند (Process ID)
نام فرآیند
توصیف‌کننده پرونده (در صورت موفقیت)، یا -1 (در صورت شکست)
شماره خطا (به errno.h سیستم مراجعه کنید)
مسیر بازگشایی (Open path)

این ابزار نقطه ردیابی open را ردیابی کرده و برای هر رویداد خروجی را چاپ می‌کند. از آنجا که نرخ این رویدادها معمولاً کم انتظار می‌رود (کمتر از ۱۰۰۰ در ثانیه)، بار پردازشی نیز ناچیز برآورد می‌شود. اگر برنامه‌ای دارید که با نرخ بالایی ()open را فراخوانی می‌کند، پیش از استفاده بار پردازشی را آزمایش کرده و بررسی نمایید.

این ابزار برگرفته از bpftrace است.

https://github.com/bpftrace/bpftrace

همچنین در توزیع bpftrace به فایل همراه _examples.txt که شامل نمونه‌های استفاده، خروجی و توضیحات این ابزار است مراجعه کنید.

این یک نسخه bpftrace از ابزار bcc با همین نام است. ابزار bcc ممکن است گزینه‌ها و سفارشی‌سازی‌های بیشتری ارائه دهد.

https://github.com/iovisor/bcc

Linux

ناپایدار - در حال توسعه.

Brendan Gregg, Rong Tao <rongtao@cestc.cn>

statsnoop.bt(8), execsnoop.bt(8)

2018-09-08 USER COMMANDS