Как да наблюдавате активността на потребителите на Linux с psacct или acct Tools

Сподели

psacct или акц и двете са помощни програми с отворен код за наблюдение на дейностите на потребителите в системата Linux. Тези помощни програми работят във фонов режим и следят дейността на всеки потребител във вашата система, както и какви ресурси се консумират.

Аз лично използвах тези инструменти в нашата компания, имаме екип за разработка, където нашите разработчици непрекъснато работят върху сървъри. И така, това са най-добрите помощни програми, за да ги държите под око.

Тези програми предоставят отличен начин за наблюдение какво правят потребителите, какви команди изпълняват, колко ресурси се консумират от тях и колко време потребителите са активни в системата. Друга полезна функция е, че дава общите ресурси, консумирани от услуги като Apache, MySQL, FTP, SSH и др.

[ You might also like: How to Monitor Linux Commands Executed by System Users in Real-time ]

Мисля, че това е една от страхотните и най-необходими помощни програми за всеки Linux/Unix системен администратор, който иска да следи дейностите на потребителите на своите сървъри/системи.

The psacct или акц Пакетът предоставя няколко функции за наблюдение на процесните дейности.

  • ак командата отпечатва статистиката на потребителските влизания/излизания (време за свързване) в часове.
  • lastcomm командата отпечатва информацията за предишни изпълнени команди на потребителя.
  • accton команди се използва за включване/изключване на процес за счетоводство.
  • На командата обобщава информацията за предишни изпълнени команди.
  • последно и последноб командите показват списък с последните влезли потребители.

Инсталиране на psacct или acct пакети в Linux

psacct и акц и двата са подобни пакети и няма голяма разлика между тях, но psacct пакетът е достъпен само за базирани на rpm дистрибуции като RHEL, CentOS, и Fedoraкато има предвид, че акц пакетът е наличен за дистрибуции като Ubuntu, Дебиан, и Linux Mint.

За да инсталирате psacct пакет под базирани на rpm дистрибуции издайте следната команда yum.

# yum install psacct

За да инсталирате акц пакет с помощта на командата apt под Ubuntu / Debian / Linux Mint.

$ sudo apt install acct

В други дистрибуции на Linux можете да го инсталирате, както е показано.

$ sudo apk add psacct          [On Alpine Linux]
$ sudo pacman -S acct          [On Arch Linux]
$ sudo zypper install acct     [On OpenSUSE]    
Стартиране на услуга psacct или acct

По подразбиране, psacct услугата е в деактивиран режим и трябва да я стартирате ръчно под базирани на RHEL дистрибуции. Използвайте следната команда, за да проверите състоянието на услугата.

$ sudo systemctl status psacct

Виждате, че състоянието се показва като забранено, така че нека го стартираме ръчно, като използваме следните команди, които ще създадат /var/account/pacct файл.

$ sudo systemctl start psacct
$ sudo systemctl enable psacct
$ sudo systemctl status psacct
Стартирайте услугата psacct
Стартирайте услугата psacct

Под Ubuntu, Дебиан, и Мента услугата се стартира автоматично, не е необходимо да я стартирате отново.

Показване на статистика за времето за свързване на потребителите

ак командата без посочване на аргумент ще покаже общата статистика за времето за свързване в часове въз основа на потребителските влизания/излизания от текущия wtmp файл.

# ac

total     11299.15
Отпечатайте общото време за свързване на потребителя на Linux
Отпечатайте общото време за свързване на потребителя на Linux

Показване на статистика на потребителите на Linux през деня

С помощта на командата „и -d” ще отпечата общото време за влизане в часове по дни.

# 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
Отпечатайте Общо време за влизане на потребител на Linux
Отпечатайте Общо време за влизане на потребител на Linux

Показване на общото време за влизане на всички потребители на Linux

С помощта на командата „и -p” ще отпечата общото време за влизане на всеки потребител на Linux в часове.

# ac -p

	rockylinux                         425.61
	tecmint                            702.29
	root                             10171.54
	total    11299.44
Отпечатайте общото време за влизане на потребителите
Отпечатайте общото време за влизане на потребителите

Показване на времето за влизане на потребителя в Linux

За да получите общото статистическо време за влизане на потребителя „tecmint” в часове, използвайте командата as.

# ac tecmint
 total      702.29

Показване на деня за влизане на потребителя

Следната команда ще отпечата общото време за влизане за деня на потребителя “tecmint“ след часове.

# 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

Отпечатайте всички Linux команди, изпълнени от потребители

На” се използва за отпечатване на обобщението на командите, които са били изпълнени от потребителите.

# 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 е осреднено използване на ядрото за процесорно време, т.е 1 к единици
  • sshd име на командата

Отпечатайте информация за потребителя на Linux

За да получите информация за отделен потребител, използвайте опциите -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

Отпечатайте броя на Linux процесите

Тази команда отпечатва общия брой процеси и процесорни минути. Ако видите непрекъснато увеличение на тези числа, значи е време да погледнете в системата какво се случва.

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

Отпечатайте и сортирайте използването по процент

Командата „в -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‘ се използва за търсене и показване на информация за предварително изпълнена потребителска команда. Можете също да търсите команди на отделни потребителски имена. Например виждаме команди на потребителя (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 команда, ще можете да видите индивидуалното използване на всяка команда.

# 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

За повече информация и използване вижте страниците с ръководство за тези инструменти.

Публикациите се превеждат автоматично с google translate


Сподели