Superviseu l'activitat dels usuaris de Linux amb les eines psacct o acct


psacct o acct són utilitats de codi obert per supervisar les activitats dels usuaris al sistema Linux. Aquestes utilitats s'executen en segon pla i fan un seguiment de l'activitat de cada usuari al vostre sistema, així com dels recursos que s'estan consumint.

Jo personalment vaig utilitzar aquestes eines a la nostra empresa, tenim un equip de desenvolupament on els nostres desenvolupadors treballen contínuament en servidors. Per tant, aquestes són les millors utilitats per vigilar-les.

Aquests programes ofereixen una manera excel·lent de controlar què fan els usuaris, quines ordres executen, quants recursos consumeixen i quant de temps estan actius els usuaris al sistema. Una altra característica útil és que ofereix els recursos totals consumits per serveis com Apache, MySQL, FTP, SSH, etc.

[També us pot agradar: Com supervisar les ordres de Linux executades pels usuaris del sistema en temps real]

Crec que aquesta és una de les utilitats excel·lents i més necessàries per a tots els administradors de sistemes Linux/Unix, que volien fer un seguiment de les activitats dels usuaris als seus servidors/sistemes.

El paquet psacct o acct ofereix diverses funcions per supervisar les activitats del procés.

  • l'ordre ac imprimeix les estadístiques d'inicis de sessió/ tancaments de sessió dels usuaris (temps de connexió) en hores.
  • l'ordre lastcomm imprimeix la informació de les ordres executades prèviament de l'usuari.
  • les ordres accton s'utilitzen per activar/desactivar el procés de comptabilitat.
  • l'ordre sa resumeix la informació de les ordres executades anteriorment.
  • les ordres last i lastb mostren una llista dels últims usuaris que han iniciat sessió.

Instal·lació de paquets psacct o acct a Linux

psacct i acct són paquets similars i no hi ha molta diferència entre ells, però el paquet psacct només està disponible per a distribucions basades en rpm com RHEL, CentOS i Fedora, mentre que el paquet acct està disponible per a distribucions com Ubuntu, Debian, i Linux Mint.

Per instal·lar el paquet psacct sota distribucions basades en rpm, emet la següent comanda yum.

# yum install psacct

Per instal·lar el paquet acct mitjançant l'ordre apt a Ubuntu/Debian/Linux Mint.

$ sudo apt install acct

En altres distribucions de Linux, podeu instal·lar-lo tal com es mostra.

$ sudo apk add psacct          [On Alpine Linux]
$ sudo pacman -S acct          [On Arch Linux]
$ sudo zypper install acct     [On OpenSUSE]    

De manera predeterminada, el servei psacct està en mode desactivat i cal que l'inicieu manualment a les distribucions basades en RHEL. Utilitzeu l'ordre següent per comprovar l'estat del servei.

$ sudo systemctl status psacct

Veu que l'estat es mostra com a desactivat, així que l'iniciem manualment mitjançant les ordres següents, que crearan un fitxer /var/account/pacct.

$ sudo systemctl start psacct
$ sudo systemctl enable psacct
$ sudo systemctl status psacct

Sota Ubuntu, Debian i Mint, el servei s'inicia automàticament, no cal que el torneu a iniciar.

Mostra les estadístiques del temps de connexió dels usuaris

L'ordre ac sense especificar cap argument mostrarà les estadístiques totals del temps de connexió en hores basades en els inicis de sessió/tancaments de sessió de l'usuari del fitxer wtmp actual.

# ac

total     11299.15

Mostra les estadístiques dels usuaris de Linux al dia

L'ús de l'ordre ac -d imprimirà el temps total d'inici de sessió en hores per dia.

# 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

Mostra el temps d'inici de sessió total de tots els usuaris de Linux

L'ús de l'ordre ac -p imprimirà el temps total d'inici de sessió de cada usuari de Linux en hores.

# ac -p

	rockylinux                         425.61
	tecmint                            702.29
	root                             10171.54
	total    11299.44

Mostra l'hora d'inici de sessió de l'usuari de Linux

Per obtenir el temps total de les estadístiques d'inici de sessió de l'usuari tecmint en hores, utilitzeu l'ordre as.

# ac tecmint
 total      702.29

Mostra l'hora d'inici de sessió diària de l'usuari

La següent comanda imprimirà el temps d'inici de sessió total diari de l'usuari tecmint en hores.

# 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

Imprimeix totes les ordres de Linux executades pels usuaris

L'ordre sa s'utilitza per imprimir el resum de les ordres executades pels usuaris.

# 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

Explicació de la sortida de l'ordre anterior:

  • 9.86re és un temps real segons els minuts del rellotge de paret
  • 0,01 cp és una suma del temps del sistema/usuari en minuts de CPU
  • 2466k és un ús mitjà del nucli del temps de la CPU, és a dir, 1k unitats
  • Nom de l'ordre sshd

Imprimeix la informació de l'usuari de Linux

Per obtenir la informació d'un usuari individual, utilitzeu les opcions -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

Imprimeix el nombre de processos de Linux

Aquesta ordre imprimeix el nombre total de processos i minuts de CPU. Si observeu un augment continuat d'aquestes xifres, és hora d'estudiar el sistema sobre què està passant.

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

Imprimeix i ordena l'ús per percentatge

L'ordre sa -c mostra el percentatge més alt d'usuaris.

# 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

Llista les darreres ordres executades de l'usuari

L'ordre latcomm s'utilitza per cercar i mostrar informació de l'ordre d'usuari executada prèviament. També podeu cercar ordres de noms d'usuari individuals. Per exemple, veiem ordres de l'usuari (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

Cerqueu els registres d'ordres

Amb l'ajuda de l'ordre lastcomm, podreu veure l'ús individual de cada comanda.

# 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

Per obtenir més informació i ús, consulteu les pàgines del manual d'aquestes eines.