Cum monitorizăm activitatea pe un server Linux

Sistemele Linux furnizează o serie de comenzi care fac ușoara raportarea activității sistemului. În acest post, vom examina câteva comenzi care sunt deosebit de utile. Comanda „watch” Coma ...

Publicat la data de 25.06.2019

Actualizat la data de 02.09.2019

Scris de NAV Communications

3 minute rămase

Sistemele Linux furnizează o serie de comenzi care fac ușoara raportarea activității sistemului. În acest post, vom examina câteva comenzi care sunt deosebit de utile.

Comanda „watch”

Comanda „watch” este o comandă care face mai ușoara examinarea în mod repetat a unei varietăți de date despre sistemul dvs. – activitățile utilizatorilor, procesele care rulează, datele de conectare, utilizarea memoriei etc. Tot ce face este să ruleze comanda pe care o specificați dvs, în mod repetat, de fiecare dată suprascriind rezultatul afișat anterior, acest lucru dovedindu-se o modalitate foarte convenabilă de monitorizare a ceea ce se întâmplă în sistemul dvs.

Pentru a începe cu o comandă foarte de bază insă nu deosebit de utilă, puteți rula „watch -n 5 date” și puteți vedea un rezultat cu data și ora curentă care se actualizează la fiecare 5 secunde. Așa cum probabil ați ghicit, opțiunea „-n 5” specifică numărul de secunde dintre fiecare execuție a comenzii. Valoarea prestabilită este de 2 secunde. Comanda va rula și va actualiza rezultatul până în momentul în care este anulată prin comanda ^ c.

Every 5.0s: date user: Tue Jun 25 15:59:14 2019

Tue Jun 25 15:59:14 EST 2019

Mai jos avem o comandă mai interesantă, prin care puteți vizualiza o listă actualizată a utilizatorilor care se conectează la server. Conform exemplului, această comandă se va actualiza la fiecare 10 secunde. Utilizatorii care se deconectează vor dispărea din lista curentă, iar cei care se autentifica vor vor fi afișați în aceasta. Dacă nimeni nu se conectează sau deconectează, lista va rămâne aceeași, cu excepția afișării timpului curent.

$ watch -n 10 who
Every 10.0s: who user: Tue Jun 25 16:02:14 2019

user 1 :0 2019-01-23 09:45 (:0)
user 2 pts/0 2019-01-23 15:50 (192.168.0.5)
user 3 pts/1 2019-01-23 16:01 (192.168.0.15)
user 4 pts/3 2019-01-23 11:11 (192.168.0.27)

În cazul în care doriți doar să vedeți câți utilizatori sunt conectați, puteți afișa numărul de utilizatori, împreună cu media load-ului, care vă va arata cât de încărcat este sistemul, alăturând comanda uptime împreună cu watch.

$ watch uptime

Every 2.0s: uptime user: Tue Jun 25 16:25:14 2019

16:25:48 up 22 days, 4:38, 3 users, load average: 1.15, 0.89, 1.02

Dacă doriți să utilizați watch pentru a repeta o comandă care include opțiunea „pipe”, va trebui să puneți comanda între ghilimele, ca în exemplul de mai jos, care la fiecare 5 secunde vă arată câte procese rulează:

$ watch -n 5 ‘ps -ef | wc -l’

Every 5.0s: ps -ef | wc -l user: Tue Jun 25 16:30:14 2019

245

Pentru a verifica utilizarea memoriei, puteți rula comanda următoare:

$ watch -n 5 free -m

Every 5.0s: free -m user: Tue Jun 25 16:34:14 2019

          total        used        free      shared  buff/cache   available

Mem: 5959 776 3276 12 1906 4878
Swap: 2047 0 2047

Puteți totodată să urmăriti și procesele rulate de un anumit utilizator cu comanda watch, însă comanda top oferă este o opțiune mult mai utilă.

Comanda top

În cazul în care doriți să urmăriți procesele rulate de către un anumit utilizator, top are o opțiune ideală pentru dvs. – opțiunea -u:

$ top -u user

top – 16:14: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 și, 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 user 20 0 46340 7820 6504 S 0.0 0.1 0:00.05 systemd
23033 user 20 0 149660 3140 72 S 0.0 0.1 0:00.00 (sd-pam)
23125 user 20 0 63396 5100 4092 S 0.0 0.1 0:00.00 sshd
23128 user 20 0 16836 5636 4284 S 0.0 0.1 0:00.03 zsh

Nu numai că vedeți ce procese rulează utilizatorul, ci și resursele (CPU și memoria) pe care procesul în sine le consumă și cât de încărcat funcționează sistemul per ansamblu.

Comanda ac

Dacă doriți să vedeți cât de mult timp este conectat fiecare dintre utilizatorii dvs., puteți utiliza comanda ac. Aceasta necesită instalarea pachetului acct (Debian) sau psacct (RHEL, Centos, etc.).

Comanda ac are un număr de opțiuni, dar își colectează datele din fișierul wtmp. Iată un exemplu care arată numărul total de ore în care au fost conectați utilizatorii recent:

$ ac
total 1261.72

Această comandă arată numărul total de ore per utilizator:

$ ac -p
user 1 5.24
user 2 5.52
user 3 1251.00
total 1261.76

Această comandă arată contorizarea zilnică a numărului de ore în care au fost conectați utilizatorii:

$ ac -d | tail -10

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

Există multe comenzi prin care se poate examina activitatea unui sistem. Comanda de watch vă permite să executați în mod repetat orice comandă și să urmăriți modificarea rezultatului. Comanda top este o opțiune mai bună pentru a vă concentra pe procesele utilizatorilor și, de asemenea, se leagă într-un mod care vă permite să vedeți modificările în timp ce acestea se întâmplă, iar comanda ac examinează timpul de conectare al utilizatorului.

0

Articole relevante

20 Mar2024

Cum ne ferim de phishing: Ghid pentru protejarea datelor

Citește mai departe
26 Feb2024

Cele mai bune Aplicații pentru Magazinul Online

Citește mai departe
12 Feb2024

Tutorial pas cu pas pentru Configurarea Rețelei în CentOS

Citește mai departe
28 Dec2023

Schimbarea nameserverelor pentru site-ul tău

Citește mai departe
18 Dec2023

Cum să îți creezi propriile nameservere pentru website-ul tău

Citește mai departe
24 Nov2023

Cum instalăm LAMP pe Debian 10?

Citește mai departe

Comentarii