Psacct या acct टूल के साथ Linux उपयोगकर्ता गतिविधि की निगरानी करें
psacct या acct दोनों ही Linux सिस्टम पर उपयोगकर्ताओं की गतिविधियों की निगरानी के लिए ओपन सोर्स यूटिलिटीज हैं। ये उपयोगिताएँ पृष्ठभूमि में चलती हैं और आपके सिस्टम पर प्रत्येक उपयोगकर्ता की गतिविधि के साथ-साथ किन संसाधनों का उपभोग किया जा रहा है, पर नज़र रखती हैं।
मैंने व्यक्तिगत रूप से हमारी कंपनी में इन उपकरणों का उपयोग किया है, हमारे पास एक विकास टीम है जहां हमारे डेवलपर्स लगातार सर्वर पर काम करते हैं। तो, इन पर नज़र रखने के लिए ये सबसे अच्छी उपयोगिताएँ हैं।
ये प्रोग्राम यह निगरानी करने का एक शानदार तरीका प्रदान करते हैं कि उपयोगकर्ता क्या कर रहे हैं, वे कौन से आदेश निष्पादित कर रहे हैं, उनके द्वारा कितने संसाधनों का उपभोग किया जा रहा है, और उपयोगकर्ता कितने समय से सिस्टम पर सक्रिय हैं। एक अन्य उपयोगी विशेषता यह है कि यह Apache, MySQL, FTP, SSH, आदि जैसी सेवाओं द्वारा उपभोग किए गए कुल संसाधन देता है।
[आप यह भी पसंद कर सकते हैं: रीयल-टाइम में सिस्टम उपयोगकर्ताओं द्वारा निष्पादित लिनक्स कमांड की निगरानी कैसे करें]
मुझे लगता है कि यह प्रत्येक लिनक्स/यूनिक्स सिस्टम प्रशासक के लिए सबसे बड़ी और सबसे आवश्यक उपयोगिताओं में से एक है, जो अपने सर्वर/सिस्टम पर उपयोगकर्ता गतिविधियों का ट्रैक रखना चाहता था।
प्रक्रिया गतिविधियों की निगरानी के लिए psacct या acct पैकेज कई सुविधाएँ प्रदान करता है।
- ac कमांड घंटों में उपयोगकर्ता लॉगिन/लॉगआउट (कनेक्ट समय) के आंकड़े प्रिंट करता है।
- lastcomm कमांड उपयोगकर्ता के पहले निष्पादित कमांड की जानकारी प्रिंट करता है।
- एक्टन कमांड का उपयोग लेखांकन के लिए प्रक्रिया को चालू/बंद करने के लिए किया जाता है।
- sa कमांड पहले निष्पादित कमांड की जानकारी को सारांशित करता है।
- अंतिम और अंतिम आदेश अंतिम लॉग-इन उपयोगकर्ताओं की सूची दिखाते हैं।
Linux में psacct या acct संकुल संस्थापित करना
psacct और acct दोनों समान पैकेज हैं और उनके बीच बहुत अंतर नहीं है, लेकिन psacct पैकेज केवल rpm- आधारित वितरण जैसे RHEL, CentOS और Fedora के लिए उपलब्ध है, जबकि acct पैकेज उबंटू, डेबियन जैसे वितरण के लिए उपलब्ध है। और लिनक्स मिंट।
rpm-आधारित वितरण के अंतर्गत psacct संकुल को संस्थापित करने के लिए निम्नलिखित yum आदेश जारी करें.
# yum install psacct
उबंटू/डेबियन/लिनक्स मिंट के तहत उपयुक्त कमांड का उपयोग करके एसीटी पैकेज स्थापित करने के लिए।
$ sudo apt install acct
अन्य लिनक्स वितरण पर, आप इसे दिखाए अनुसार स्थापित कर सकते हैं।
$ sudo apk add psacct [On Alpine Linux] $ sudo pacman -S acct [On Arch Linux] $ sudo zypper install acct [On OpenSUSE]
डिफ़ॉल्ट रूप से, psacct सेवा अक्षम मोड में है और आपको इसे आरएचईएल-आधारित वितरण के तहत मैन्युअल रूप से प्रारंभ करने की आवश्यकता है। सेवा की स्थिति की जांच करने के लिए निम्न आदेश का प्रयोग करें।
$ sudo systemctl status psacct
आप स्थिति को अक्षम के रूप में दिखाते हुए देखते हैं, तो चलिए इसे निम्नलिखित कमांड का उपयोग करके मैन्युअल रूप से शुरू करते हैं, जो एक /var/account/pacct फ़ाइल बनाएगा।
$ sudo systemctl start psacct $ sudo systemctl enable psacct $ sudo systemctl status psacct
उबंटू के तहत, डेबियन और मिंट सेवा स्वचालित रूप से शुरू हो जाती है, आपको इसे फिर से शुरू करने की आवश्यकता नहीं है।
उपयोगकर्ता कनेक्ट समय के आंकड़े प्रदर्शित करें
एसी कमांड किसी भी तर्क को निर्दिष्ट किए बिना वर्तमान wtmp फ़ाइल से उपयोगकर्ता लॉगिन/लॉगआउट के आधार पर घंटों में कनेक्ट समय के कुल आंकड़े प्रदर्शित करेगा।
# ac total 11299.15
दिन के हिसाब से लिनक्स उपयोगकर्ताओं के आंकड़े प्रदर्शित करें
एसी-डी कमांड का उपयोग करने से दिन के हिसाब से कुल लॉगिन समय घंटों में प्रिंट हो जाएगा।
# ac -d Jun 25 total 0.19 Oct 13 total 14.45 Oct 27 total 672.00 Oct 28 total 15.82 Nov 3 total 4.29 Nov 5 total 10.13 Dec 7 total 14.04 Dec 10 total 23.60 Dec 27 total 808.93 Jan 3 total 12.31 Mar 3 total 1438.67 Jul 22 total 6767.81 Today total 1517.09
सभी लिनक्स उपयोगकर्ताओं का कुल लॉगिन समय प्रदर्शित करें
कमांड एसी-पी का उपयोग करके प्रत्येक लिनक्स उपयोगकर्ता का कुल लॉगिन समय घंटों में प्रिंट हो जाएगा।
# ac -p rockylinux 425.61 tecmint 702.29 root 10171.54 total 11299.44
लिनक्स उपयोगकर्ता लॉगिन समय प्रदर्शित करें
उपयोगकर्ता टेकमिंट के कुल लॉगिन आंकड़े समय को घंटों में प्राप्त करने के लिए, कमांड का उपयोग करें।
# ac tecmint
total 702.29
उपयोगकर्ता का दिन-वार लॉगिन समय प्रदर्शित करें
निम्नलिखित कमांड उपयोगकर्ता के दिन-वार कुल लॉगिन समय टेकमिंट को घंटों में प्रिंट करेगा।
# 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
उपयोगकर्ताओं द्वारा निष्पादित सभी लिनक्स कमांड प्रिंट करें
sa कमांड का उपयोग उपयोगकर्ताओं द्वारा निष्पादित कमांड के सारांश को प्रिंट करने के लिए किया जाता है।
# 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 एक रीयल-टाइम है
- 0.01cp सीपीयू मिनट में सिस्टम/उपयोगकर्ता समय का योग है
- 2466k एक सीपीयू-टाइम औसत कोर उपयोग है, यानी 1k यूनिट
- sshd कमांड का नाम
लिनक्स उपयोगकर्ता जानकारी प्रिंट करें
किसी व्यक्तिगत उपयोगकर्ता की जानकारी प्राप्त करने के लिए -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
लिनक्स प्रक्रियाओं की प्रिंट संख्या
यह कमांड कुल प्रक्रियाओं और CPU मिनटों को प्रिंट करता है। यदि आप इन संख्याओं में निरंतर वृद्धि देखते हैं, तो यह सिस्टम पर गौर करने का समय है कि क्या हो रहा है।
# 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
उपयोगकर्ता के अंतिम निष्पादित कमांड की सूची बनाएं
'Latcomm' कमांड का उपयोग पहले से निष्पादित उपयोगकर्ता कमांड जानकारी को खोजने और प्रदर्शित करने के लिए किया जाता है। आप अलग-अलग उपयोगकर्ता नामों के आदेश भी खोज सकते हैं। उदाहरण के लिए, हम उपयोगकर्ता (टेकमिंट) के आदेश देखते हैं।
# 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
कमांड के लिए लॉग खोजें
लास्टकॉम कमांड की मदद से आप प्रत्येक कमांड के व्यक्तिगत उपयोग को देख पाएंगे।
# 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
अधिक जानकारी और उपयोग के लिए, इन उपकरणों के मैन्युअल पृष्ठ देखें।