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

अधिक जानकारी और उपयोग के लिए, इन उपकरणों के मैन्युअल पृष्ठ देखें।