Kako spremljati aktivnost uporabnika z orodji psacct ali acct
psacct ali acct sta odprtokodna aplikacija za spremljanje dejavnosti uporabnikov v sistemu. Te aplikacije se izvajajo v ozadju in spremljajo vsako dejavnost uporabnikov v vašem sistemu ter vire, ki se porabijo.
Ta program sem osebno uporabljal v našem podjetju, imamo razvojno skupino, kjer naši razvijalci nenehno delajo na strežnikih. Torej, to je eden najboljših programov za njihovo spremljanje. Ta program ponuja odličen način za spremljanje, kaj uporabniki počnejo, katere ukaze sprožijo, koliko virov porabijo, kako dolgo so uporabniki aktivni v sistemu. Druga odlična lastnost tega programa je, da daje skupne vire, ki jih porabijo storitve, kot so Apache, MySQL, FTP, SSH itd.
Mislim, da je to ena odličnih in nujno potrebnih aplikacij za vsakega sistemskega skrbnika sistema Linux/Unix, ki je želel slediti uporabniškim aktivnostim na svojih strežnikih/sistemih.
Paket psacct ali acct ponuja več funkcij za spremljanje dejavnosti procesa.
- ukaz ac natisne statistiko uporabniških prijav/odjav (čas povezave) v urah.
- lastcomm ukaz natisne podatke o predhodno izvedenih ukazih uporabnika.
- ukazi accton se uporabljajo za vklop/izklop postopka računovodstva.
- ukaz sa povzema informacije o predhodno izvedenih ukazih.
- ukaza last in lastb prikazujeta seznam zadnjih prijavljenih uporabnikov.
Nameščanje paketov psacct ali acct
psacct ali acct sta podobna paketa in med njima ni velike razlike, vendar je paket psacct na voljo samo za distribucije na osnovi rpm, kot so RHEL, CentOS in Fedora, paket acct pa je na voljo za distribucije, kot so Ubuntu, Debian in Linux Mint.
Če želite namestiti paket psacct v distribucije, ki temeljijo na rpm, izdajte naslednji ukaz yum.
# yum install psacct
Če želite namestiti paket acct z ukazom apt-get pod Ubuntu/Debian/Linux Mint.
$ sudo apt-get install acct OR # apt-get install acct
Storitev psacct je privzeto v onemogočenem načinu in jo morate zagnati ročno v sistemih RHEL/CentOS/Fedora. Z naslednjim ukazom preverite stanje storitve.
# /etc/init.d/psacct status Process accounting is disabled.
Stanje je prikazano kot onemogočeno, zato ga zaženimo ročno z uporabo naslednjih obeh ukazov. Ta dva ukaza bosta ustvarila datoteko/var/account/pacct in zagnala storitve.
# chkconfig psacct on # /etc/init.d/psacct start Starting process accounting: [ OK ]
Po zagonu storitve še enkrat preverite stanje, dobili boste stanje, kot je omogočeno, kot je prikazano spodaj.
# /etc/init.d/psacct status Process accounting is enabled.
V Ubuntuju se storitev Debian in Mint zažene samodejno, vam je ni treba znova zagnati.
ukaz ac brez navedbe katerega koli argumenta bo prikazal skupno statistiko časa povezave v urah na podlagi uporabniških prijav/odjav iz trenutne datoteke wtmp.
# ac
total 1814.03
Z uporabo ukaza “ac -d” boste po dnevih natisnili skupni čas prijave v urah.
# 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
Uporaba ukaza “ac -p” bo natisnila skupni čas prijave vsakega uporabnika v urah.
# ac -p
root 1645.18 tecmint 168.96 total 1814.14
Če želite pridobiti skupni čas prijavne statistike uporabnika “tecmint” v urah, uporabite ukaz kot.
# ac tecmint
total 168.96
Naslednji ukaz natisne celodnevni skupni čas prijave uporabnika "tecmint" v urah.
# 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
Ukaz "sa" se uporablja za tiskanje povzetka ukazov, ki so jih izvedli uporabniki.
# 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 je "realni čas" glede na minute stenske ure
- 0,01 cp je vsota sistemskega/uporabniškega časa v minutah procesorja
- 2466k je povprečna poraba jedra v času procesorja, tj. 1k enot
- ime ukaza sshd
Za informacije o posameznem uporabniku uporabite možnosti -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
Ta ukaz natisne skupno število procesov in minut procesorja. Če opazite, da se te številke še naprej povečujejo, je čas, da v sistem preučimo, kaj se dogaja.
# sa -m
sshd 2 9.86re 0.00cp 2466k root 127 14.29re 0.00cp 909k
Ukaz "sa -c" prikazuje največji odstotek uporabnikov.
# 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
Ukaz 'latcomm' se uporablja za iskanje in prikaz predhodno izvedenih informacij o uporabniških ukazih. Iščete lahko tudi po ukazih posameznih uporabniških imen. Na primer, vidimo ukaze uporabnika (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
S pomočjo ukaza lastcomm si boste lahko ogledali individualno uporabo vsakega ukaza.
# 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