Kā pārraudzīt lietotāju darbību, izmantojot psacct vai acct rīkus


psacct vai acct abi ir atvērtā pirmkoda lietojumprogramma lietotāju darbību uzraudzībai sistēmā. Šīs lietojumprogrammas darbojas fonā un seko līdzi katrai lietotāju darbībai jūsu sistēmā, kā arī tam, kādi resursi tiek patērēti.

Es personīgi izmantoju šo programmu mūsu uzņēmumā, mums ir izstrādes komanda, kurā mūsu izstrādātāji nepārtraukti strādā pie serveriem. Tātad, šī ir viena no labākajām programmām, kas ļauj tām sekot. Šī programma nodrošina lielisku veidu, kā uzraudzīt, ko lietotāji dara, kādas komandas viņi izšauj, cik daudz resursu viņi patērē, cik ilgi lietotāji ir aktīvi sistēmā. Vēl viena lieliska šīs programmas iezīme ir tā, ka tiek piešķirti kopējie resursi, ko patērē tādi pakalpojumi kā Apache, MySQL, FTP, SSH utt.

Es domāju, ka šī ir viena no lieliskajām un nepieciešamajām lietojumprogrammām katram Linux/Unix sistēmas administratoram, kurš vēlējās sekot līdzi lietotāju darbībām savos serveros/sistēmās.

Psacct vai acct pakotne nodrošina vairākas procesa darbību uzraudzības funkcijas.

  1. ac komanda drukā lietotāju pieteikšanās/atteikšanās statistiku (savienojuma laiks) stundās.
  2. komanda lastcomm izdrukā informāciju par iepriekš izpildītām lietotāja komandām.
  3. Accton komandas tiek izmantotas, lai ieslēgtu/izslēgtu grāmatvedības procesu.
  4. sa komanda apkopo informāciju par iepriekš izpildītajām komandām.
  5. komandas lastb un lastb parāda pēdējo reģistrēto lietotāju sarakstu.

Psacct vai acct pakotņu instalēšana

psacct vai acct abas ir līdzīgas paketes, un starp tām nav daudz atšķirību, taču psacct pakotne ir pieejama tikai uz rpm balstītiem izplatījumiem, piemēram, RHEL, CentOS un Fedora, savukārt acct pakete ir pieejama izplatīšanai, piemēram, Ubuntu, Debian un Linux Mint.

Lai instalētu paketi psacct zem izplatīšanas uz rpm, izdodiet šādu komandu yum.

# yum install psacct

Lai instalētu ACCT pakotni, izmantojot komandu apt-get zem Ubuntu/Debian/Linux Mint.

$ sudo apt-get install acct

OR

# apt-get install acct

Pēc noklusējuma psacct pakalpojums ir atspējots režīmā, un jums tas jāsāk manuāli RHEL/CentOS/Fedora sistēmās. Izmantojiet šo komandu, lai pārbaudītu pakalpojuma statusu.

# /etc/init.d/psacct status
Process accounting is disabled.

Jūs redzat, ka statuss ir atspējots, tāpēc sāksim to manuāli, izmantojot abas šīs komandas. Šīs divas komandas izveidos failu/var/account/pacct un sāks pakalpojumus.

# chkconfig psacct on
# /etc/init.d/psacct start
Starting process accounting:                               [  OK  ]

Pēc servisa palaišanas vēlreiz pārbaudiet statusu, jūs saņemsit statusu kā iespējotu, kā parādīts zemāk.

# /etc/init.d/psacct status
Process accounting is enabled.

Izmantojot Ubuntu, pakalpojums Debian un Mint tiek startēts automātiski, tas nav jāsāk no jauna.

ac komanda, nenorādot nevienu argumentu, parādīs kopējo savienojuma laika statistiku stundās, pamatojoties uz lietotāja pieteikšanās/atteikšanās no pašreizējā wtmp faila palīdzību.

# ac
total     1814.03

Izmantojot komandu “ac -d”, dienas kārtībā tiks izdrukāts kopējais pieteikšanās laiks stundās.

# 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

Izmantojot komandu “ac -p”, katra lietotāja kopējais pieteikšanās laiks tiks izdrukāts stundās.

# ac -p
        root                              1645.18
        tecmint                            168.96
        total     1814.14

Lai iegūtu lietotāja “tecmint” kopējo pieteikšanās statistikas laiku stundās, izmantojiet komandu kā.

# ac tecmint
 total      168.96

Šī komanda izdrukās kopējo lietotāja “tecmint” pieteikšanās laiku stundās.

# 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

Komanda “sa” tiek izmantota, lai izdrukātu lietotāju izpildīto komandu kopsavilkumu.

# 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

  1. 9.86re ir “reālais laiks” atbilstoši sienas pulksteņa minūtēm
  2. 0,01kp ir sistēmas/lietotāja laika summa CPU minūtēs
  3. 2466k ir procesora laika vidējais kodola lietojums, t.i., 1k vienības
  4. sshd komandas nosaukums

Lai iegūtu atsevišķa lietotāja informāciju, izmantojiet opcijas -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

Šī komanda izdrukā kopējo procesu skaitu un CPU minūtes. Ja redzat, ka šo skaitļu skaits turpina pieaugt, ir pienācis laiks ieskatīties sistēmā par notiekošo.

# sa -m
sshd                                    2       9.86re       0.00cp     2466k
root                                  127      14.29re       0.00cp      909k

Komanda “sa -c” parāda vislielāko lietotāju procentuālo daudzumu.

# 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

Komanda ‘latcomm’ tiek izmantota, lai meklētu un parādītu iepriekš izpildītu lietotāju komandu informāciju. Varat arī meklēt atsevišķu lietotājvārdu komandas. Piemēram, mēs redzam lietotāja komandas (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

Ar komandas lastcomm palīdzību jūs varēsiet apskatīt katras komandas individuālu lietošanu.

# 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