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

execsnoop.bt - ردیابی فرآیندهای جدید از طریق فراخوانی‌های سیستمی ()exec. از bpftrace/eBPF استفاده می‌کند.

execsnoop.bt

این ابزار زمان فراخوانی ()exec (همان ()execve) توسط فرآیندها را ردیابی می‌کند. این ابزار برای شناسایی فرآیندهای جدیدی که از طریق توالی معمول ()fork()->exec ایجاد می‌شوند، سودمند است. توجه داشته باشید که مقدار بازگشتی در حال حاضر ردیابی نمی‌شود، بنابراین ممکن است ()exec ناموفق بوده باشد.

این ابزار برای اشکال‌زدایی اسکریپت‌های شل، از جمله راه‌اندازی برنامه‌ها مفید است. همچنین برای شناسایی نوعی مشکل عملکردی سودمند است: هجوم فرآیندهای کوتاه‌عمر که به سرعت پایان می‌یابند و به آسانی در top(1) قابل مشاهده نیستند.

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

CONFIG_BPF و bpftrace.

ردیابی تمام فرآیندهای جدیدی که ()execve را فراخوانی می‌کنند:
# execsnoop.bt

زمان فراخوانی ()exec، بر حسب میلی‌ثانیه از زمان شروع برنامه.
شناسه فرآیند (Process ID)
شناسه فرآیند والد (Parent Process ID)
نام فرآیند و آرگومان‌ها (حداکثر ۱۶ کلمه).

این ابزار نقطه ردیابی ()execve را ردیابی کرده و برای هر رویداد خروجی را چاپ می‌کند. از آنجا که نرخ این رویدادها معمولاً کم انتظار می‌رود (< 100/s)، سربار نیز ناچیز برآورد می‌شود. اگر برنامه‌ای دارید که به دلیلی با نرخ بالایی فرآیندهای جدید ایجاد می‌کند (یک فرآیند ساخت بزرگ)، این امر می‌تواند مقدار کمی سربار ایجاد کند: پیش از استفاده، سربار را آزمایش کرده و بسنجید.

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

https://github.com/bpftrace/bpftrace

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

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

https://github.com/iovisor/bcc

Linux

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

Brendan Gregg

opensnoop.bt(8)

2018-09-11 USER COMMANDS