Monitoring aktivnosti na Linux serveru
Linux sistemi imaju brojne komande koje olakšavaju izveštavanje vezano za sistemske aktivnosti. U ovom tekstu ćemo predstaviti neke od komandi za monitoring aktivnosti na Linux serveru.
Watch komanda
Watch komanda se koristi za proveru različitih podataka sistema: korisničkih aktivnosti, pokrenutih procesa, logovanja, korišćenja memorije itd. Sve što ova komada zaista radi jeste da iznova pokreće zadatu komandu, svaki put gazeći prethodno ispisani izlaz.
Da biste testirali ovo možete pokrenuti neku običnu komandu kao na primer watch -n 5 date i videti trenutni datum i vreme koji se osvežavaju svakih 5 sekundi. Kao što već pretpostavljate opcija -5 određuje broj sekundi za čekanje pre nego se komanda ponovo pokrene.
Podrazumevana vrednost je 2 sekunde. Komanda će se pokrenuti i ažurirati ispis na displeju sve dok je ne prekinete sa ^c:
Every 5.0s: date butterfly: Sun Jun 27 15:59:14 2021
Sun Jun 27 15:59:14 2021
Evo jednog interesantnijeg primera: Možete posmatrati ažuriranu listu korisnika koji su se logovali na server. Kao što možete videti na primeru ispod, komanda će se ažurirati svakih 10 sekundi. Korisnici koji se izloguju će nestati sa liste prvi put kada je komanda ponovo osveži, a isto tako oni koji se uloguju između dva osvežavanja će se tada videti na listi. Naravno, ukoliko se niko nije ulogovao, lista će ostati ista, jedino će se promeniti vreme.
$ watch -n 10 who
Every 10.0s: who butterfly: Sun Jun 27 16:10:24 2021
shs :0 2019-01-23 09:45 (:0)
dory pts/0 2019-01-23 15:50 (192.168.0.5)
nemo pts/1 2019-01-23 16:01 (192.168.0.15)
shark pts/3 2019-01-23 11:11 (192.168.0.27)
Ukoliko samo želite da vidite koliko korisnika je ulogovano, možete dobiti broj korisnika zajedno sa vrednostima uptime-a sistema, tako što ćete uz watch pozvati i komandu uptime:
$ watch uptime
Every 2.0s: uptime butterfly: Sun Jun 27 16:15:18 2021
16:15:18 up 22 days, 4:38, 3 users, load average: 1.15, 0.89, 1.02
Ukoliko želite da iskoristite watch da ponovi komandu koja uključuje i pipe, potrebno je da umetnete komandu između znaka navodnika. Pogledajte primer ispod gde ova komanda svakih 5 sekundi pokazuje koliko procesa je trenutno aktivno:
$ watch -n 5 'ps -ef | wc -l'
Every 5.0s: ps -ef | wc -l butterfly: Sun Jun 27 16:20:35 2021
245
Da biste posmatrali iskorišćenost memorije, možete probati sledeću komandu:
$ watch -n 5 free -m
Every 5.0s: free -m butterfly: Sun Jun 27 16:22:56 2021
total used free shared buff/cache available
Mem: 5959 776 3276 12 1906 4878
Swap: 2047 0 2047
Da biste posmatrali procese pokrenute od strane jednog korisnika koristite watch, ali komada top obezbeđuje mnogo više opcija.
Top komanda
Ukoliko želite da posmatrate procese nekog određenog korisnika, top komanda ima idealnu opciju za vas. U pitanju je -u opcija:
$ top -u nemo
top - 16:34:33 up 2 days, 4:27, 3 users, load average: 0.00, 0.01, 0.02
Tasks: 199 total, 1 running, 198 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.2 sy, 0.0 ni, 99.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 5959.4 total, 3277.3 free, 776.4 used, 1905.8 buff/cache
MiB Swap: 2048.0 total, 2048.0 free, 0.0 used. 4878.4 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
23026 nemo 20 0 46340 7820 6504 S 0.0 0.1 0:00.05 systemd
23033 nemo 20 0 149660 3140 72 S 0.0 0.1 0:00.00 (sd-pam)
23125 nemo 20 0 63396 5100 4092 S 0.0 0.1 0:00.00 sshd
23128 nemo 20 0 16836 5636 4284 S 0.0 0.1 0:00.03 zsh
Ne samo da vidite koji su procesi aktivni, nego i resurse koje ti procesi trenutno koriste (CPU vreme i memorija) i koliko dobro sistem u celosti radi.
Ac komanda
Ukoliko želite da vidite koliko vremena svaki od korisnika provodi ulogovan, može vam koristiti ac komanda. Ovo zahteva instalaciju acct (Debian) ili psacct (RHEL, Centos, itd) paketa.
Ac komanda ima brojne opcije, ali ona vuče svoje podatke iz tekućeg wtmp fajla. Evo jednog primera koji pokazuje ukupan broj sati koliko su korisnici bili ulogovani:
$ ac
total 1261.72
Ova komanda pokazuje ukupan broj po korisniku:
$ ac -p
shark 5.24
nemo 5.52
shs 1251.00
total 1261.76
Ova ac komanda pokazuje koliko sati su korisnici bili ulogovani kog dana:
Jun 11 total 0.05
Jun 12 total 1.36
Jun 13 total 16.39
Jun 15 total 55.33
Jun 16 total 38.02
Jun 17 total 28.51
Jun 19 total 48.66
Jun 20 total 1.37
Jun 22 total 23.48
Today total 9.83
Zaključak
Postoji mnogo komandi za monitoring aktivnosti na Linux-u. Watch komanda vam omogućava da pokrenete bilo koju komadu na način tako da se ponavlja i da svaki put daje neki rezultat na izlazu. Top komanda je bolja opcija ukoliko vam je potrebno da se fokusirate na korisničke procese i takođe pravi petlju tako da vam omogućava da praktično u realnom vremenu vidite promene koje su se u međuvremenu dogodile. Na kraju, ac komanda, kako smo videli, služi za nadzor nad vremenom koje korisnici provide ulogovani na sistem.
Koje Linux komande vi koristite za nadzor vašeg sistema? Podelite svoja iskustva sa nama i drugim čitaocima.
