Kuidas jälgida kasutaja tegevust psacct- või acct-tööriistade abil


psacct või acct mõlemad on avatud lähtekoodiga rakendus kasutajate tegevuse jälgimiseks süsteemis. Need rakendused töötavad taustal ja jälgivad kõigi teie kasutajate tegevust teie süsteemis ning ka seda, milliseid ressursse kulutatakse.

Ma isiklikult kasutasin seda programmi meie ettevõttes, meil on arendustiim, kus meie arendajad töötavad pidevalt serverites. Niisiis, see on üks parimatest programmidest, millega neil silma peal hoida. See programm pakub suurepärast võimalust jälgida, mida kasutajad teevad, milliseid käske nad käivitavad, kui palju ressursse nad tarbivad, kui kaua kasutajad on süsteemis aktiivsed. Selle programmi veel üks suurepärane omadus on see, et see annab selliste teenuste nagu Apache, MySQL, FTP, SSH jne tarbitud ressursid kokku.

Ma arvan, et see on üks suurepäraseid ja hädavajalikke rakendusi kõigile Linuxi/Unixi süsteemiadministraatoritele, kes soovisid jälgida kasutajate tegevust oma serverites/süsteemides.

Pakett psacct või acct pakub protsesside jälgimiseks mitmeid funktsioone.

  1. ac käsk prindib kasutaja sisselogimiste/väljalogimiste statistika (ühenduse aeg) tundides.
  2. käsk lastcomm prindib kasutaja varem täidetud käskude teabe.
  3. acctoni käske kasutatakse raamatupidamise sisse- ja väljalülitamiseks.
  4. sa käsk võtab kokku varem täidetud käskude teabe.
  5. last ja lastb käsud näitavad viimati sisse logitud kasutajate loendit.

Psacct või acct pakettide installimine

Mõlemad psacct või acct on sarnased paketid ja nende vahel pole suurt vahet, kuid psacct pakett on saadaval ainult rpm-põhistele jaotustele nagu RHEL, CentOS ja Fedora, samas kui acct-pakett on saadaval distributsioonidele nagu Ubuntu, Debian ja Linux Mint.

Paketi psacct installimiseks rpm-põhiste jaotuste alla väljastage järgmine käsk yum.

# yum install psacct

Acct-paketi installimiseks käsu apt-get abil Ubuntu/Debian/Linux Mint.

$ sudo apt-get install acct

OR

# apt-get install acct

Vaikimisi on psacct-teenus keelatud režiimis ja peate selle RHEL/CentOS/Fedora süsteemides käsitsi käivitama. Teenuse oleku kontrollimiseks kasutage järgmist käsku.

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

Olek kuvatakse keelatuna, seega alustame seda käsitsi, kasutades mõlemat järgmist käsku. Need kaks käsku loovad faili/var/account/pacct ja käivitavad teenused.

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

Pärast teenuse alustamist kontrollige olekut uuesti, saate oleku lubatuks, nagu allpool näidatud.

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

Ubuntu all käivitatakse Debiani ja Mint teenus automaatselt, te ei pea seda uuesti käivitama.

ac-käsk ilma ühtegi argumenti täpsustamata kuvab ühenduse aja kogustatistika tundides, põhinedes praeguse wtmp-faili kasutaja sisselogimisel/väljalogimisel.

# ac
total     1814.03

Kasutades käsku "ac -d", prinditakse sisse logimise kogu aeg tundides tundide kaupa.

# 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

Kasutades käsku “ac -p”, prinditakse iga kasutaja kogu sisselogimisaeg tundides.

# ac -p
        root                              1645.18
        tecmint                            168.96
        total     1814.14

Kasutaja “tecmint” kogu sisselogimisstatistika aja tundides saamiseks kasutage käsku as.

# ac tecmint
 total      168.96

Järgmine käsk prindib kasutaja “tecmint” päevase sisselogimise koguaja tundides.

# 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

Käsku “sa” kasutatakse kasutajate käskude kokkuvõtte printimiseks.

# 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 on reaalajas seinakellaminutite järgi
  2. 0,01cp on süsteemi/kasutaja aja summa CPU minutites
  3. 2466k on protsessori aja keskmine tuumkasutus, st 1k ühikut
  4. sshd käsu nimi

Üksiku kasutaja teabe saamiseks kasutage suvandeid -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

See käsk prindib protsesside ja protsessori minutite koguarvu. Kui näete nende arvude jätkuvat suurenemist, on aeg uurida toimuva kohta süsteemi.

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

Käsk “sa -c” kuvab kasutajate suurima protsendi.

# 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

Käsku „latcomm” kasutatakse varem täidetud kasutaja käskude teabe otsimiseks ja kuvamiseks. Samuti saate otsida üksikute kasutajanimede käske. Näiteks näeme kasutaja käske (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

Lastcomm-käsu abil saate vaadata iga käsu individuaalset kasutamist.

# 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