ابزار هایی مانند w, who و last, lastb از دسته اطلاعاتی هستند که اطلاعاتی از فعالیت کاربران (زمان ورود و یا تعداد Login های اشتباه) برای مانیتورینگ به مدیر کمک خواهد کرد. یکی از اصلی ترین این دستور ها who است که اطلاعاتی مانند نام کاربری و ترمینالی که به آن Login کرده و زمان ورود و مدت زمان فعالیت و آدرس را نشان می دهد
who
سوئیچ q- تنها نام کاربران و تعداد کاربران Login کرده را نشان می دهد. خروجی این دستور همانند دستور users می باشد جز اینکه در خروجی users تعداد کاربران نشان داده نمی شود و تنها فهرست نام کاربران نشان داده می شود.
دستور who شامل سوئیچ H- است که Header را به ابتدای خط های خروجی اضافه می کند. هر ستون Header معرف و معنی همان ستون است. سوئیچ b- زمان و تاریخ آخرین بار بوت شدن سیستم را نشان می دهد. login– فرایند های Login برای ورود به سیستم را نشان می دهد. سه ترمینال مجازی از tty1 تا tty6 وجود دارند که با استفاده از کلید های Ctrl+F1 تا F6 قابل دسترسی هستند (یا اگر در Runlevel=3 باشیم). همانطوری که مشاهده می کنید این ترمینال ها زمانی که استفاده نمی شوند در دسترس فرایند LOGIN هستند.
LOGIN tty4 2013-12-28 09:44 855 id=4
LOGIN tty5 2013-12-28 09:44 868 id=5
LOGIN tty2 2013-12-28 09:44 883 id=2
LOGIN tty3 2013-12-28 09:44 884 id=3
LOGIN tty6 2013-12-28 09:44 887 id=6
سوئیچ t- آخرین باری که سیستم تغییر کرده را نشان می دهد. سوئیچ r- شماره سطح اجرایی کنونی را نشان می دهد. سوئیچ a- مجموعه اطلاعات سوئیچ های r,b,t,T,d,p,u و login را نشان می دهد. شکل زیر خروجی دستور who -aH است
who -aH
در شکل بالا خط های 1 و 2 به ترتیب معرف خروجی سوئیچ های b و r هستند که نشان دهنده آخرین زمان بوت سیستم و سطح اجرای کنونی هستند. خط های 3 خروجی سوئیچ login– هستند. از این خط ها به بعد، زیر ستون PID، شناسه مربوط به ترمینالی که کاربران به آن Login کرده اند را نشان می دهد. خط 4 چون زیر ستون Comment آدرسی وجود ندارد پس یک اتصال محلی است و این بر خلاف خط های 5 است که دارای یک آدرس می باشند و به معنی اتصال راه دور توسط ssh است.
مانیتورینگ کاربران به صورت Real Time
با نصب و به کار بردن دستور whowatch می توان فعالیت کاربران (مانند خروجی دستور who) را بصورت Real Time مانیتورینگ کرد. سه حالت برای اتصال کاربری به یک ماشین وجود دارد : یا بصورت محلی (معمولا بر روی یکی از ترمینال های tty)، از طریق telnet و یا به واسطه ssh. با استفاده از دستور های زیر می توان آنرا در توزیع های دبیان/ابونتو و توزیع های Redhat/CentOS/Fedora نصب کرد/
apt-get install whowatch
yum install whowatch
برای اجرا دستور را اجرا کنید
whowatch
مطابق شکل بالا، نخستین خط تعداد کاربران Login کرده به این سیستم و دسته بندی شده بر حسب نوع اتصال آنها را نشان می شدهد. 4 کاربر به سیستمی که دستور در آن اجرا شده Login کرده اند، سه تا ssh و دیگری که به other مشخص شده استو به خاط این است که کاربر root بطور مستقیم (پس از فرایند بوت سیستم و نشان داده شدن صفحه ی Login) بر روی خود ماشین به یکی از 6 کنسول مجازی tty1 تا tty6 به سیستم Login کرده است. (هیج آدرسی بر خلاف اتصال های ssh/telnet ثبت نشده است). ستون نخست نوع ورودی که کاربر با آن به سیستم Login کرده است را نشان می دهد . چون root بطور مستقیم و از خود همان ماشین به کنسول tty1 وارد شده است، پس نام login را نشان می دهد. سه خط بعدی یعنی به واسطه اتصال ssh ارتباط با ماشین از راه دور صورت گرفته است. خط دوم نام کاربری که توسط آن به سیستم Login شده است را نشان می دهد. خط سوم کنسولی که به واسطه آن Login انجام شده، خط چهارم برای ارتباط های ssh/telnet آدرس IP ماشین راه دور نوشته خواهد شده و خط آخر دستوری که کاربر اجرا کرده است.
با بالا و پایین کردن توسط کی بورد بر روی هر خط که بروید، آن خط انتخاب خواهد شد. هر خطی را که انتخاب کنید :
- اگر کلید d را بزنید اطلاعات کاربری آن کاربر (بطور مثال در شکل زیر root) نشان داده خواهد شد.
- کلید s اطلاعات سیستمی را نشان می دهد. در صفحه ی آبی رنگ خروجی نشان داده شده (چه برای d و چه برای s) بک کلید a به بالای صفحه و با کلید z پایین صفحه بیایید.
- کلید F1 راهنما و کلید F9 منو را نشان می دهد.
- با زدن کلید Enter بر روی هر خط، اطلاعات فرایند مربوط به آن خط نشان داده می شود. برای مثال با توجه به شکل 1 و زدن Enter خروجی مانند زیر نشان داده می شود.
شکل بالا نشان می دهد که دستور توسط کاربر root و بر روی کنسول tty1 با PID=2747 اجرا شده است که والد آن فرایندی است به نام bash که شناسه یا PID آن 1504 می باشد و این یعنی اینکه PPID دستور whowatch برابر 1504 است. اگر دستور pgrep را بصورت زیر بزنید فهرست تمامی که فرایند هایی که والدشان شناسه 1504 است نشان داده می شود.
pgrep -P 1504
- کلید t درختواره و سلسله مراتب میان فرایند ها را نشان می دهد. بازهم با توجه به شکل 1 اگر روی نخستین خط کلید t را بزنیم، چیزی مانند زیر نشان داده می شود
شکل بالا نشان می دهد که یک فرایند whowatch که در حال اجرا شدن است (مشخص شده توسط R) والدش فرایندی با نام bash و شناسه 1504 و خود bash والدش فرایند 1262 یعنی bin/login/ که خود این فرایند والدش فرایند init می باشد.