هر 2 ابزار psacct و acct نرم افزارهای opensource برای مانیتور کردن فعالیت کاربران روی سیستم میباشد. این نرم افزارها در بک گراند اجرا میشوند و هر گونه فعالیت کاربر را روی سیستم نگه میدارد و همچنین میزان مصرف resource های سیستم ذخیره میکند.
من به شخصه در شرکت خود از این برنامه استفاده کردم ما در شرکت تیم برنامه نویسی داریم و هر برنامه نویس مستمرا روی سرورها کار میکند بنابراین این برنامه یکی از بهترین ابزارها برای مانیتور کردن مستمر آنهاست. این برنامه به شیوه ای عالی تمامی فعالیت های کاربران، هرآنچه کامندی که آنها استفاده کرده اند، میزان resource مصرف شده توسط آنها، مدت زمانی که یوزرها روی سیستم active بودند را نمایش میدهد. یکی از ابزارهای بی نظیر این برنامه این است که میزان کل resource مصرف شده توسط سرویس های همچون Apache, MySQL, FTP,SSH و غیره را میدهد.
به نظر من این برنامه یکی از عالی ترین و مورد نیازترین اپلیکیشن هایست که هر administrator سیستم Linux/Unix احتیاج دارد و میخواهد عمده فعالیت های کاربران روی سرور یا سیستم هایش داشته باشد.
پکیج psacct یا acct چندین قابلیت برای مانیتورینگ فعالیت ها فراهم میآورد.
دستور ac :
آمار login و logout های (conect time) کاربران را به ساعت print میکند.
دستور lastcomm :
اطلاعات کامندهای قبلی اجرا شده کاربر را print میکند.
دستور accton :
برای خاموش و روشن کردن پروسه اکانتینگ مورد استفاده قرار میگیرد.
دستور sa :
اطلاعات کامندهای قبلی اجرا شده را summarize میکند.
دستور last و lastb :
لیست آخرین کاربرانی که login کردند را نمایش میدهد.
نصب پکیج های psacct یا acct :
پکیج های psacct یا acct پکیج های شبیه به همی هستند و تفاوت زیادی بین آنها نیست فقط پکیج psacct در rpm و برای توزیع هایی مانند RHEL, CentOS و Fedora موجود است در حالی که پکیج acct در توزیع هایی مانند Ubuntu, Debian و Linux Mint موجود میباشد.
برای نصب پکیج psacct روی توزیع های rpm-base دستور yum زیر را اجرا میکنیم :
برای نصب پکیج acct با استفاده از دستور apt-get تحت سیستم عامل های Ubuntu / Debian / Linux Mint مانند زیر عمل میکنیم :
Start کردن سرویس های psacct یا acct :
به صورت پیش فرض سرویس psacct در disable mode (غیرفعال) میباشد و شما برای start آن باید به صورت دستی آن را روی سیستم های RHEL/CentOS/Fedora استارت (start) کنید. با استفاده از دستور زیر میتوانید وضعیت سرویس را بررسی کنید :
همانطور که میبینید وضعیت را disable (غیرفعال) نشان میدهد پس به صورت دستی و با استفاده از هر 2 کامند زیر باید آن را start کنید. این 2 کامند فایل /var/account/pacct را ایجاد خواهند کرد و همچنین سرویس را start میکند :
بعد از start سرویس دوباره وضعیت آن را بررسی کنید همانطور که میبینید وضعیت به enabled تغییر کرده است :
تحت سیستم عامل های Ubunt, Debian و Mint این سرویس به صورت اتوماتیک start میشود و شما نیاز به start مجدد آن ندارید.
نمایش آمار زمان اتصال کاربران به سیستم :
دستور ac بدون مشخص کردن هیچ گونه آپشن یا عبارتی آمار کل زمان اتصال (Login Time) را به ساعت و براساس login و logout های کاربر از فایل wtmp جاری نمایش میدهد :
نمایش آمار Day-wise کاربران :
استفاده از دستور ac -d مدت زمان کل login به ساعت را با استفاده از day-wise نمایش میدهد :
نمایش مدت زمان کل login هر user :
با استفاده از دستور ac -p مدت زمان کل login هر یوزر را به ساعت نمایش میدهد :
نمایش مدت زمان کل login به ازای هر کاربر :
برای مشاهده آمار login کل یوزر tecmint به ساعت دستور زیر را اجرا میکنیم :
نمایش مدت زمان لاگین Day-Wise یک user :
دستور زیر مدت زمان کل لاگین Day-Wise یوزر tecmint را به ساعت نمایش میدهد :
نمایش تمام اطلاعات فعالیت account :
دستور sa برای print خلاصه کامندهایی که توسط کاربران اجرا شدند استفاده میشود :
در دستور بالا :
9.86re :
یک real time بر مبنای دقایق ساعت دیواری میباشد.
0.01cp :
مجموعی از زمان system/user به واحد cpu minutes میباشد.
2466k :
میانگین cpu time از میزان استفاده cpu میباشد به طور مثال 1k units
sshd :
نام دستور استفاده شده
Print اطلاعات مجزای هر کاربر :
برای دریافت اطلاعات مجزای هر کاربر از آپشن -u استفاده میشود :
نمایش تعداد Proccess ها :
این دستور تعداد کل proccess ها و cpu minutes را نمایش میدهد اگر شما افزایش مستمری را در این تعداد مشاهده کردید در این لحظه زمانیست که باید سیستم را برای اتفاقی که در حال رخ دادن است بررسی کنید :
نمایش ترتیب از روی درصد (%) :
دستور sa -c به ترتیب از کاربران بالاترین درصد را نمایش میدهد :
لیست آخرین دستورات اجرا شده توسط کاربر :
دستور lastcomm برای جستجو و نمایش اطلاعات کامندهای اجرا شده قبلی کاربر استفاده میشود. شما میتوانید همچنین دستورات هر username مجزا را جستجو کنید. به طور مثال ما دستورات یوزر tecmint را با استفاده از دستور زیر مشاهده میکنیم :
جستجو log ها برای دستورات :
با کمک دستور lastcomm شما قادر خواهید بود که به صورت مجزا استفاده از هر کامند را ببینید که توسط چه کاربری و در چه زمانی روی داده است :
من به شخصه در شرکت خود از این برنامه استفاده کردم ما در شرکت تیم برنامه نویسی داریم و هر برنامه نویس مستمرا روی سرورها کار میکند بنابراین این برنامه یکی از بهترین ابزارها برای مانیتور کردن مستمر آنهاست. این برنامه به شیوه ای عالی تمامی فعالیت های کاربران، هرآنچه کامندی که آنها استفاده کرده اند، میزان resource مصرف شده توسط آنها، مدت زمانی که یوزرها روی سیستم active بودند را نمایش میدهد. یکی از ابزارهای بی نظیر این برنامه این است که میزان کل resource مصرف شده توسط سرویس های همچون Apache, MySQL, FTP,SSH و غیره را میدهد.
به نظر من این برنامه یکی از عالی ترین و مورد نیازترین اپلیکیشن هایست که هر administrator سیستم Linux/Unix احتیاج دارد و میخواهد عمده فعالیت های کاربران روی سرور یا سیستم هایش داشته باشد.
پکیج psacct یا acct چندین قابلیت برای مانیتورینگ فعالیت ها فراهم میآورد.
دستور ac :
آمار login و logout های (conect time) کاربران را به ساعت print میکند.
دستور lastcomm :
اطلاعات کامندهای قبلی اجرا شده کاربر را print میکند.
دستور accton :
برای خاموش و روشن کردن پروسه اکانتینگ مورد استفاده قرار میگیرد.
دستور sa :
اطلاعات کامندهای قبلی اجرا شده را summarize میکند.
دستور last و lastb :
لیست آخرین کاربرانی که login کردند را نمایش میدهد.
نصب پکیج های psacct یا acct :
پکیج های psacct یا acct پکیج های شبیه به همی هستند و تفاوت زیادی بین آنها نیست فقط پکیج psacct در rpm و برای توزیع هایی مانند RHEL, CentOS و Fedora موجود است در حالی که پکیج acct در توزیع هایی مانند Ubuntu, Debian و Linux Mint موجود میباشد.
برای نصب پکیج psacct روی توزیع های rpm-base دستور yum زیر را اجرا میکنیم :
کد:
# yum install psacct
برای نصب پکیج acct با استفاده از دستور apt-get تحت سیستم عامل های Ubuntu / Debian / Linux Mint مانند زیر عمل میکنیم :
کد:
$ sudo apt-get install acct OR # apt-get install acct
Start کردن سرویس های psacct یا acct :
به صورت پیش فرض سرویس psacct در disable mode (غیرفعال) میباشد و شما برای start آن باید به صورت دستی آن را روی سیستم های RHEL/CentOS/Fedora استارت (start) کنید. با استفاده از دستور زیر میتوانید وضعیت سرویس را بررسی کنید :
کد:
# /etc/init.d/psacct status Process accounting is disabled.
همانطور که میبینید وضعیت را disable (غیرفعال) نشان میدهد پس به صورت دستی و با استفاده از هر 2 کامند زیر باید آن را start کنید. این 2 کامند فایل /var/account/pacct را ایجاد خواهند کرد و همچنین سرویس را start میکند :
کد:
# chkconfig psacct on # /etc/init.d/psacct start Starting process accounting: [ OK ]
بعد از start سرویس دوباره وضعیت آن را بررسی کنید همانطور که میبینید وضعیت به enabled تغییر کرده است :
کد:
# /etc/init.d/psacct status Process accounting is enabled.
تحت سیستم عامل های Ubunt, Debian و Mint این سرویس به صورت اتوماتیک start میشود و شما نیاز به start مجدد آن ندارید.
نمایش آمار زمان اتصال کاربران به سیستم :
دستور ac بدون مشخص کردن هیچ گونه آپشن یا عبارتی آمار کل زمان اتصال (Login Time) را به ساعت و براساس login و logout های کاربر از فایل wtmp جاری نمایش میدهد :
کد:
# ac
کد:
total 1814.03
نمایش آمار Day-wise کاربران :
استفاده از دستور ac -d مدت زمان کل login به ساعت را با استفاده از day-wise نمایش میدهد :
کد:
# ac -d
کد:
Sep 17 total 5.23 Sep 18 total 15.20 Sep 24 total 3.21 Sep 25 total 2.27 Sep 26 total 2.64 Sep 27 total 6.19 Oct 1 total 6.41 Oct 3 total 2.42 Oct 4 total 2.52 Oct 5 total 6.11 Oct 8 total 12.98 Oct 9 total 22.65 Oct 11 total 16.18
نمایش مدت زمان کل login هر user :
با استفاده از دستور ac -p مدت زمان کل login هر یوزر را به ساعت نمایش میدهد :
کد:
# ac -p
کد:
root 1645.18 tecmint 168.96 total 1814.14
نمایش مدت زمان کل login به ازای هر کاربر :
برای مشاهده آمار login کل یوزر tecmint به ساعت دستور زیر را اجرا میکنیم :
کد:
# ac tecmint
کد:
total 168.96
نمایش مدت زمان لاگین Day-Wise یک user :
دستور زیر مدت زمان کل لاگین Day-Wise یوزر tecmint را به ساعت نمایش میدهد :
کد:
# ac -d tecmint
کد:
Oct 11 total 8.01 Oct 12 total 24.00 Oct 15 total 70.50 Oct 16 total 23.57 Oct 17 total 24.00 Oct 18 total 18.70 Nov 20 total 0.18
نمایش تمام اطلاعات فعالیت account :
دستور sa برای print خلاصه کامندهایی که توسط کاربران اجرا شدند استفاده میشود :
کد:
# sa
کد:
2 9.86re 0.00cp 2466k sshd* 8 1.05re 0.00cp 1064k man 2 10.08re 0.00cp 2562k sshd 12 0.00re 0.00cp 1298k psacct 2 0.00re 0.00cp 1575k troff 14 0.00re 0.00cp 503k ac 10 0.00re 0.00cp 1264k psacct* 10 0.00re 0.00cp 466k consoletype 9 0.00re 0.00cp 509k sa 8 0.02re 0.00cp 769k udisks-helper-a 6 0.00re 0.00cp 1057k touch 6 0.00re 0.00cp 592k gzip 6 0.00re 0.00cp 465k accton 4 1.05re 0.00cp 1264k sh* 4 0.00re 0.00cp 1264k nroff* 2 1.05re 0.00cp 1264k sh 2 1.05re 0.00cp 1120k less 2 0.00re 0.00cp 1346k groff 2 0.00re 0.00cp 1383k grotty 2 0.00re 0.00cp 1053k mktemp 2 0.00re 0.00cp 1030k iconv 2 0.00re 0.00cp 1023k rm 2 0.00re 0.00cp 1020k cat 2 0.00re 0.00cp 1018k locale 2 0.00re 0.00cp 802k gtbl
در دستور بالا :
9.86re :
یک real time بر مبنای دقایق ساعت دیواری میباشد.
0.01cp :
مجموعی از زمان system/user به واحد cpu minutes میباشد.
2466k :
میانگین cpu time از میزان استفاده cpu میباشد به طور مثال 1k units
sshd :
نام دستور استفاده شده
Print اطلاعات مجزای هر کاربر :
برای دریافت اطلاعات مجزای هر کاربر از آپشن -u استفاده میشود :
کد:
# sa -u
کد:
root 0.00 cpu 465k mem accton root 0.00 cpu 1057k mem touch root 0.00 cpu 1298k mem psacct root 0.00 cpu 466k mem consoletype root 0.00 cpu 1264k mem psacct * root 0.00 cpu 1298k mem psacct root 0.00 cpu 466k mem consoletype root 0.00 cpu 1264k mem psacct * root 0.00 cpu 1298k mem psacct root 0.00 cpu 466k mem consoletype root 0.00 cpu 1264k mem psacct * root 0.00 cpu 465k mem accton root 0.00 cpu 1057k mem touch
نمایش تعداد Proccess ها :
این دستور تعداد کل proccess ها و cpu minutes را نمایش میدهد اگر شما افزایش مستمری را در این تعداد مشاهده کردید در این لحظه زمانیست که باید سیستم را برای اتفاقی که در حال رخ دادن است بررسی کنید :
کد:
# sa -m
کد:
sshd 2 9.86re 0.00cp 2466k root 127 14.29re 0.00cp 909k
نمایش ترتیب از روی درصد (%) :
دستور sa -c به ترتیب از کاربران بالاترین درصد را نمایش میدهد :
کد:
# sa -c
کد:
132 100.00% 24.16re 100.00% 0.01cp 100.00% 923k 2 1.52% 9.86re 40.83% 0.00cp 53.33% 2466k sshd* 8 6.06% 1.05re 4.34% 0.00cp 20.00% 1064k man 2 1.52% 10.08re 41.73% 0.00cp 13.33% 2562k sshd 12 9.09% 0.00re 0.01% 0.00cp 6.67% 1298k psacct 2 1.52% 0.00re 0.00% 0.00cp 6.67% 1575k troff 18 13.64% 0.00re 0.00% 0.00cp 0.00% 509k sa 14 10.61% 0.00re 0.00% 0.00cp 0.00% 503k ac 10 7.58% 0.00re 0.00% 0.00cp 0.00% 1264k psacct* 10 7.58% 0.00re 0.00% 0.00cp 0.00% 466k consoletype 8 6.06% 0.02re 0.07% 0.00cp 0.00% 769k udisks-helper-a 6 4.55% 0.00re 0.00% 0.00cp 0.00% 1057k touch 6 4.55% 0.00re 0.00% 0.00cp 0.00% 592k gzip 6 4.55% 0.00re 0.00% 0.00cp 0.00% 465k accton 4 3.03% 1.05re 4.34% 0.00cp 0.00% 1264k sh* 4 3.03% 0.00re 0.00% 0.00cp 0.00% 1264k nroff* 2 1.52% 1.05re 4.34% 0.00cp 0.00% 1264k sh 2 1.52% 1.05re 4.34% 0.00cp 0.00% 1120k less 2 1.52% 0.00re 0.00% 0.00cp 0.00% 1346k groff 2 1.52% 0.00re 0.00% 0.00cp 0.00% 1383k grotty 2 1.52% 0.00re 0.00% 0.00cp 0.00% 1053k mktemp
لیست آخرین دستورات اجرا شده توسط کاربر :
دستور lastcomm برای جستجو و نمایش اطلاعات کامندهای اجرا شده قبلی کاربر استفاده میشود. شما میتوانید همچنین دستورات هر username مجزا را جستجو کنید. به طور مثال ما دستورات یوزر tecmint را با استفاده از دستور زیر مشاهده میکنیم :
کد:
# lastcomm tecmint
کد:
su tecmint pts/0 0.00 secs Wed Feb 13 15:56 ls tecmint pts/0 0.00 secs Wed Feb 13 15:56 ls tecmint pts/0 0.00 secs Wed Feb 13 15:56 ls tecmint pts/0 0.00 secs Wed Feb 13 15:56 bash F tecmint pts/0 0.00 secs Wed Feb 13 15:56 id tecmint pts/0 0.00 secs Wed Feb 13 15:56 grep tecmint pts/0 0.00 secs Wed Feb 13 15:56 grep tecmint pts/0 0.00 secs Wed Feb 13 15:56 bash F tecmint pts/0 0.00 secs Wed Feb 13 15:56 dircolors tecmint pts/0 0.00 secs Wed Feb 13 15:56 bash F tecmint pts/0 0.00 secs Wed Feb 13 15:56 tput tecmint pts/0 0.00 secs Wed Feb 13 15:56 tty tecmint pts/0 0.00 secs Wed Feb 13 15:56 bash F tecmint pts/0 0.00 secs Wed Feb 13 15:56 id tecmint pts/0 0.00 secs Wed Feb 13 15:56 bash F tecmint pts/0 0.00 secs Wed Feb 13 15:56 id tecmint pts/0 0.00 secs Wed Feb 13 15:56
جستجو log ها برای دستورات :
با کمک دستور lastcomm شما قادر خواهید بود که به صورت مجزا استفاده از هر کامند را ببینید که توسط چه کاربری و در چه زمانی روی داده است :
کد:
# lastcomm ls
کد:
ls tecmint pts/0 0.00 secs Wed Feb 13 15:56 ls tecmint pts/0 0.00 secs Wed Feb 13 15:56 ls tecmint pts/0 0.00 secs Wed Feb 13 15:56