bwm-ng(1) Bandwidth Monitor NG bwm-ng(1)

bwm-ng - مانیتور کم‌حجم و سریع پهنای باند شبکه و ورودی/خروجی دیسک

bwm-ng [گزینه‌ها] ... [فایل_پیکربندی]

از bwm-ng می‌توان برای پایش پهنای باند فعلی تمام یا برخی از رابط‌های شبکه مشخص یا دیسک‌ها (یا پارتیشن‌ها) استفاده کرد. این ابزار مجموع ترافیک ورودی و خروجی و همچنین مجموع کل رابط‌ها/دستگاه‌ها را نمایش می‌دهد. چندین روش خروجی مختلف پشتیبانی می‌شوند (curses، curses2، plain، csv و html).

ابزار bwm-ng محدودیتی در تعداد رابط‌ها یا دیسک‌ها ندارد و می‌تواند موارد جدید را در حین اجرا به‌صورت پویا مدیریت کرده یا مواردی را که فعال نیستند پنهان کند.

روش‌های ورودی مورد استفاده تا حد زیادی به سیستم‌عامل و سیستم شما بستگی دارد. شما می‌توانید روش دلخواه خود را در هنگام شروع یا در طول زمان اجرا در حالت curses انتخاب کنید. هر روش تنها در صورتی قابل استفاده است که bwm-ng با پشتیبانی از آن کامپایل شده باشد.

روش‌های ورودی شبکه که در حال حاضر پشتیبانی می‌شوند:

این حالت پیش‌فرض برای سیستم‌های مبتنی بر Linux است. این روش فایل procfs ویژه /proc/net/dev را پردازش می‌کند. در صورت شک و تردید در Linux باید از این روش استفاده شود.
این حالت پیش‌فرض در سیستم‌های BSD مانند FreeBSD، NetBSD، OpenBSD و نسخه‌های اخیر Mac OS X (بزرگتر یا مساوی ۱۰.۳) است. در صورت تردید در این سیستم‌ها باید از این روش استفاده شود. این روش از فراخوان سیستمی getifaddrs استفاده می‌کند.
این حالت پیش‌فرض برای Solaris است. این روش از فراخوان سیستمی kstat استفاده می‌کند.
این حالت پیش‌فرض در سیستم‌هایی مانند IRIX و سایر سیستم‌های UNIX است. همچنین می‌تواند در بسیاری از سیستم‌های دیگر مانند نسخه‌های اولیه Mac OS X نیز استفاده شود. این روش از فراخوان سیستمی sysctl استفاده می‌کند.
این یک روش پشتیبان برای سیستم‌های فاقد موارد بالا یا در صورت بروز سایر مشکلات است.
ابزار bwm-ng می‌تواند از کتابخانه خارجی libstatgrab برای جمع‌آوری داده‌ها استفاده کند. لطفاً برای اطلاعات بیشتر درباره آن به نشانی http://www.i-scream.org/libstatgrab مراجعه کنید.

روش‌های ورودی دیسک که در حال حاضر پشتیبانی می‌شوند:

ورودی/خروجی دیسک را در سیستم‌های لینوکس ۲.۶ به بالا با استفاده از /proc/diskstats نمایش می‌دهد. به‌جای بسته‌ها، تعداد دفعات خواندن/نوشتن نمایش داده خواهد شد.
مشابه ورودی شبکه kstat است اما برای ورودی/خروجی دیسک. این روش از فراخوان سیستمی kstat در Solaris استفاده می‌کند.
برای NetBSD و OpenBSD نوشته شده است، اما ممکن است روی سایر پلتفرم‌ها نیز کار کند.
ورودی مبتنی بر کتابخانه devstat. این مورد را می‌توانید در سیستم‌های مبتنی بر FreeBSD پیدا کنید.
ورودی مبتنی بر چارچوب نرم‌افزاری IOKit. این مورد را می‌توانید در سیستم‌های Darwin مانند MacOSX پیدا کنید.
مشابه libstatgrab است اما برای ورودی/خروجی دیسک (http://www.i-scream.org/libstatgrab).

شما می‌توانید روش‌های مختلفی را برای خروجی داده‌های جمع‌آوری‌شده توسط bwm-ng انتخاب کنید.

می‌توانید از یکی از روش‌های زیر استفاده کنید:

این روش خروجی پیش‌فرض است. معمولاً این گزینه بیشترین کاربرد را برای شما دارد. در حالت curses می‌توانید bwm-ng را با چندین کلید کنترل کنید. برای راهنمای برخط کلید 'h' را فشار دهید. برای خروج از این حالت 'q' یا ctrl-c را بزنید.
نمودارهای میله‌ای ورودی/خروجی فعلی را با استفاده از خروجی curses نمایش می‌دهد.
حالت Plain یا ASCII عمدتاً در صورتی که curses در دسترس نباشد به عنوان پشتیبان عمل می‌کند. شما به هیچ وجه نمی‌توانید bwm-ng را در این حالت کنترل کنید. برای خروج کلیدهای ctrl-c را فشار دهید. اما برای دریافت تنها یک بار خروجی با دستور bwm-ng -o plain -c 1 این حالت بهترین گزینه است.
فرمت CSV برای استفاده در اسکریپت‌ها جهت پردازش و تجزیه آسان طراحی شده است.

نوع rate:

unix timestamp;iface_name;bytes_out/s;bytes_in/s;bytes_total/s;bytes_in;bytes_out;packets_out/s;packets_in/s;packets_total/s;packets_in;packets_out;errors_out/s;errors_in/s;errors_in;errors_out\n

نوع svg، sum، max:

unix timestamp;iface_name;bytes_out;bytes_in;bytes_total;packets_out;packets_in;packets_total;errors_out;errors_in\n

برای صرف‌نظر کردن از اولین خروجی که فقط شامل مقادیر صفر است، از دستور زیر استفاده کنید:

bwm-ng -o csv -c 0
این حالت برای استفاده در وب (WWW) طراحی شده است. این روش از فایل CSS به نام bwm-ng.css در دایرکتوری کاری جاری استفاده می‌کند. گزینه «--htmlrefresh» فقط بر بازخوانی صفحه توسط مرورگر اثر می‌گذارد. برای دستیابی به بهترین نتیجه، مقدار یکسانی برای --timeout و --htmlrefresh تعیین کنید.

گزینه‌هایی که توسط bwm-ng شناسایی می‌شوند را می‌توان به ۳ گروه مختلف تقسیم کرد. نگارش‌های طولانی تنها در صورتی قابل استفاده هستند که bwm-ng با getopt_long کامپایل شده باشد.

این گزینه‌ها روش جمع‌آوری داده‌ها و همچنین تنظیمات گوناگون مربوط به آن‌ها را تعیین می‌کنند.

تعیین می‌کند که از کدام روش استفاده شود. در صورتی که پشتیبانی از آن کامپایل شده باشد، می‌تواند یکی از روش‌های فوق باشد (بخش روش‌های ورودی را ببینید).
فایلی را که باید در روش ورودی proc پردازش شود انتخاب می‌کند. این فایل معمولاً /proc/net/dev است.
فایلی را که باید در روش ورودی disk پردازش شود انتخاب می‌کند. این فایل معمولاً /proc/diskstats است.
فایلی را که باید در روش ورودی disk روی هسته‌های (Kernel) قدیمی‌تر پردازش شود انتخاب می‌کند. این فایل معمولاً /proc/partitions است.
فایل باینری اجرایی برای روش ورودی netstat را مشخص می‌کند. از آنجا که این گزینه ممکن است یک نقص امنیتی ایجاد کند، پشتیبانی از آن به‌طور پیش‌فرض در bwm-ng کامپایل نمی‌شود.

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

انتخاب می‌کند که از کدام روش برای خروجی استفاده شود. در صورتی که پشتیبانی از آن کامپایل شده باشد، می‌تواند یکی از روش‌های فوق باشد (بخش روش‌های خروجی را ببینید).
انتخاب می‌کند که کدام واحد نمایش داده شود. می‌تواند یکی از مقادیر bytes (بایت)، bits (بیت)، packets (بسته‌ها) یا errors (خطاها) باشد.
نوع آماری که باید نمایش داده شود را مشخص می‌کند. از rate برای نرخ فعلی بر ثانیه، max برای حداکثر مقدار ثبت‌شده از زمان شروع bwm-ng، sum برای مجموع کل محاسبه‌شده از زمان شروع bwm-ng یا avg برای میانگین در ۳۰ ثانیه گذشته استفاده کنید.
تعداد دفعات خروجی برای حالت‌های Plain و CSV. از '1' برای یک خروجی منفرد استفاده کنید. استفاده از '0' در حالت CSV اولین خروجی را که همواره شامل مقادیر صفر است نادیده می‌گیرد.
نویسه جداکننده (delimiter) را برای حالت CSV مشخص می‌کند. مقدار پیش‌فرض ';' است.
استفاده از یک فایل خروجی (outfile) را به‌جای خروجی استاندارد (stdout) تعیین می‌کند. این گزینه فقط بر حالت‌های CSV و HTML تأثیر می‌گذارد.
فیلد Meta refresh را در حالت HTML بر حسب ثانیه تنظیم می‌کند. این کار باعث بارگیری مجدد صفحه توسط مرورگر در هر n ثانیه می‌شود. در صورت تنظیم این گزینه، توصیه می‌شود از --htmlheader نیز استفاده کنید.
در صورت استفاده از این گزینه، bwm-ng هدر صحیح HTML (شامل <html></html>) را به همراه فیلدهای Meta قبل و بعد از داده‌ها چاپ می‌کند. این گزینه تنها در حالت HTML کاربرد دارد. مقدار می‌تواند 0 (خاموش) یا 1 (روشن) باشد؛ در صورتی که مقداری داده نشود، عدد '1' استفاده می‌شود.
غیرفعال کردن کدهای ANSI برای خروجی Plain.
نمایش نام‌های واقعی و طولانی دیسک‌ها در سامانه Darwin (ورودی ioservice).

این گزینه‌ها رفتار عمومی bwm-ng را تعیین می‌کنند.

آمارها را در هر n میلی‌ثانیه جمع‌آوری کرده و نمایش می‌دهد (۱ میلی‌ثانیه = ۱/۱۰۰۰ ثانیه). مقدار پیش‌فرض ۵۰۰ میلی‌ثانیه است.
بایت‌ها و بیت‌ها را با واحدهای پویا مانند K، M یا G (کیلو، مگا، گیگا) نمایش می‌دهد. مقدار می‌تواند 0 (خاموش) یا 1 (روشن) باشد؛ بدون تعیین مقدار، عدد '1' در نظر گرفته می‌شود.
مشخص می‌کند که فقط رابط‌های فعال و انتخاب‌شده (حالت=0)، تمام رابط‌های فعال حتی اگر انتخاب نشده باشند (حالت=1)، یا تمامی رابط‌ها حتی رابط‌های غیرفعال (down) و انتخاب‌نشده (حالت=2) نمایش داده شوند. در صورت مشخص نشدن فهرستی از رابط‌ها (--interfaces)، حالت‌های حالت=1 و حالت=2 یکسان خواهند بود.
تنها رابط‌هایی را که در این فهرستِ جداشده با کاما قرار دارند نمایش می‌دهد (لیست سفید). اگر پیش از فهرست یک '%' قرار گیرد، مفهوم آن معکوس شده و رابط‌های درون این فهرست از خروجی پنهان می‌شوند (لیست سیاه). (مثال: %eth0,tun0).
در صورت استفاده و در صورتی که مقدار اختیاری غیر صفر باشد، رابط‌های پنهان و نمایش‌داده‌نشده را نیز در محاسبه مقدار کل منظور می‌کند.
مدت زمان بازه‌ای را که آمار حالت میانگین (average) در آن جمع‌آوری می‌شود تعیین می‌کند. مقدار پیش‌فرض ۳۰ ثانیه یا ۲*timeout است.
در صورت استفاده و در صورتی که مقدار اختیاری غیر صفر باشد، برنامه به پس‌زمینه رفته و به صورت دیمن (daemon) اجرا می‌شود. این گزینه فقط بر حالت‌های HTML و CSV اثر می‌گذارد و استفاده از --outfile الزامی است.
نمایش راهنمای گزینه‌های خط فرمان.
چاپ اطلاعات نسخه برنامه.

رفتار bwm-ng را می‌توان با یک فایل پیکربندی نیز کنترل کرد. به‌طور پیش‌فرض، bwm-ng ابتدا فایل ‎/etc/bwm-ng.conf‎ و سپس ‎~/.bwm-ng.conf‎ را می‌خواند. در صورت مشخص شدن فایل در خط فرمان، bwm-ng از فایل‌های پیش‌فرض صرف‌نظر می‌کند. این فایل شامل همان گزینه‌های طولانی خط فرمان به عنوان کلید است که به دنبال آن‌ها '=' و مقدار مربوطه قرار می‌گیرد. خطوطی که با # شروع شوند یا حاوی کلید ناشناخته باشند نادیده گرفته می‌شوند.

برای مثال:

DYNAMIC=1
UNIT=bits
PROCFILE=/proc/net/dev
OUTPUT=plain

bwm-ng.css فایل CSS مورد استفاده برای خروجی html.

فایل bwm-ng.conf-example برای مشاهده نمونه‌ای از فایل پیکربندی، و فایل README برای سایر نکات و توضیحات پیرامون bwm-ng.
نشانی http://www.gropp.org برای نسخه جدید یا راهنمایی و پیوندهای بیشتر.

Volker Gropp <bwmng@gropp.org> برنامه bwm-ng را نوشته است و نگهدارنده فعلی آن است.
برای سایر نویسندگان لطفاً به فایل AUTHORS مراجعه کنید که باید همراه با bwm-ng ارائه شده باشد.

2007-03-01