Kako nadzirati aktivnost korisnika pomoću alata psacct ili acct


psacct ili acct su aplikacija otvorenog koda za praćenje aktivnosti korisnika na sustavu. Te se aplikacije rade u pozadini i prate svaku aktivnost korisnika na vašem sustavu, kao i resurse koji se troše.

Osobno sam koristio ovaj program u našoj tvrtki, imamo razvojni tim u kojem naši programeri kontinuirano rade na poslužiteljima. Dakle, ovo je jedan od najboljih programa koji ih ima na oku. Ovaj program pruža izvrstan način za praćenje onoga što korisnici rade, koje naredbe izvršavaju, koliko resursa troše, koliko su korisnici aktivni u sustavu. Još jedna sjajna značajka ovog programa je da daje ukupne resurse koje troše usluge poput Apachea, MySQL-a, FTP-a, SSH-a itd.

Mislim da je ovo jedna od sjajnih i neophodnih aplikacija za sve administratore sustava Linux/Unix, koji su željeli pratiti aktivnosti korisnika na svojim poslužiteljima/sustavima.

Paket psacct ili acct nudi nekoliko značajki za praćenje aktivnosti procesa.

  1. Naredba ac ispisuje statistiku korisničkih prijava/odjava (vrijeme povezivanja) u satima.
  2. lastcomm naredba ispisuje informacije o prethodno izvršenim naredbama korisnika.
  3. naredbe accton koriste se za uključivanje/isključivanje postupka računovodstva.
  4. sa naredba sažima informacije o prethodno izvršenim naredbama.
  5. naredbe last i lastb prikazuju popis posljednjih prijavljenih korisnika.

Instaliranje psacct ili acct paketa

psacct ili acct su slični paketi i nema velike razlike između njih, ali paket psacct dostupan je samo za distribucije temeljene na rpm-u, kao što su RHEL, CentOS i Fedora, dok je paket acct dostupan za distribucije poput Ubuntu, Debian i Linux Mint.

Da biste instalirali paket psacct u distribucijama temeljenim na rpm-u, izdajte sljedeću yum naredbu.

# yum install psacct

Da biste instalirali paket acct pomoću naredbe apt-get pod Ubuntu/Debian/Linux Mint.

$ sudo apt-get install acct

OR

# apt-get install acct

Prema zadanim postavkama usluga psacct je u onemogućenom načinu rada i morate je pokrenuti ručno pod RHEL/CentOS/Fedora sustavima. Upotrijebite sljedeću naredbu za provjeru statusa usluge.

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

Vidite da se status prikazuje onemogućen, pa pokrenimo ga ručno pomoću sljedeće dvije naredbe. Ove dvije naredbe stvorit će datoteku/var/account/pacct i pokrenuti usluge.

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

Nakon pokretanja usluge, ponovno provjerite status, dobit ćete status omogućen kao što je prikazano u nastavku.

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

Pod Ubuntuom, usluga Debian i Mint pokreće se automatski, ne trebate je ponovno pokretati.

Naredba ac bez navođenja bilo kojeg argumenta prikazat će ukupnu statistiku vremena povezivanja u satima na temelju korisničkih prijava/odjava iz trenutne wtmp datoteke.

# ac
total     1814.03

Korištenjem naredbe "ac -d" dnevno će se ispisati ukupno vrijeme prijave u satima.

# 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

Korištenjem naredbe "ac -p" ispisat će se ukupno vrijeme prijave svakog korisnika u satima.

# ac -p
        root                              1645.18
        tecmint                            168.96
        total     1814.14

Da biste dobili ukupno vrijeme statistike statistike prijave korisnika "tecmint" u satima, upotrijebite naredbu kao.

# ac tecmint
 total      168.96

Sljedeća naredba ispisuje ukupno dnevno vrijeme prijave korisnika "tecmint" u satima.

# 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

Naredba "sa" koristi se za ispis sažetka naredbi koje su izvršili korisnici.

# 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 "stvarno je vrijeme" prema minutama zidnog sata
  2. 0,01 cp zbroj je vremena sustava/korisnika u CPU minutama
  3. 2466k je prosječna potrošnja jezgre po CPU-u, tj. 1k jedinica
  4. naziv naredbe sshd

Da biste dobili podatke o pojedinačnom korisniku, upotrijebite opcije -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

Ova naredba ispisuje ukupan broj procesa i CPU minuta. Ako vidite kako se broj ovih ljudi i dalje povećava, vrijeme je da istražite sustav o tome što se događa.

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

Naredba "sa -c" prikazuje najveći postotak korisnika.

# 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

Naredba 'latcomm' koristi se za pretraživanje i prikaz prethodno izvršenih podataka o korisničkim naredbama. Također možete pretraživati naredbe pojedinačnih korisničkih imena. Na primjer, vidimo naredbe korisnika (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

Uz pomoć naredbe lastcomm moći ćete vidjeti pojedinačnu upotrebu svake naredbe.

# 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