Cum să rulați un program periodic utilizând comanda Watch pe Linux

Uneori, trebuie să rulați în mod repetat o comandă sau un program pentru a monitoriza diferite aspecte ale sistemului dvs., cum ar fi procesele în desfășurare, utilizarea spațiului pe disc sau autentificarea utilizatorului. Comanda Linux Watch vă permite să automatizați aceste sarcini fără a fi nevoie să le executați manual din nou și din nou.

Folosind această comandă, puteți monitoriza activitățile sistemului în timp real, cum ar fi autentificarea utilizatorului, starea rețelei, utilizarea memoriei și CPU, spațiu pe disc etc. Să vedem cum să folosiți comanda watch în Linux.

Ce este comanda Watch?

Comanda watch Linux rulează o comandă specificată sau un program în mod repetat, la intervale regulate, și își afișează rezultatul în terminal. Acest lucru vă permite să observați modificările în ieșire în timp real. Acesta reîmprospătează ieșirea la fiecare interval, suprascriind ieșirea anterioară a comenzii. În mod implicit, comanda se repetă la fiecare două secunde și continuă până când o opriți manual folosind Ctrl + C.

Vizionați sintaxa comenzii

Sintaxa comenzii watch este:

 watch options <command> 

Există diferite opțiuni de linie de comandă disponibile pentru a fi utilizate cu comanda watch. Dacă rulați comanda watch fără opțiuni, aceasta va rula comanda specificată după fiecare două secunde. De exemplu, următoarele vă vor arăta rezultatul comenzii ls:

 watch ls -l ~/ 

Ieșirea vă va arăta modificările din lista de director dacă un fișier este creat, șters sau se modifică în dimensiune, în timp ce reîmprospătează ieșirea la fiecare două secunde.

  Cum să inscripționați un fișier ISO pe o unitate USB în Linux

Rulați o comandă la fiecare X secunde folosind ceasul

Puteți modifica intervalul de actualizare al comenzii watch. Aceasta înseamnă că puteți spune comenzii watch să aștepte x secunde înainte de a repeta comanda. Pentru a modifica intervalul de actualizare, utilizați opțiunea -n urmată de intervalul de timp în secunde.

 watch -n  

De exemplu, pentru a rula o comandă după fiecare 5 secunde, rulați:

 watch -n 5 <command> 

Evidențiați modificările dintre actualizări

Comanda watch își suprascrie rezultatul la fiecare reîmprospătare. Folosind opțiunea -d, puteți, de asemenea, evidenția modificările dintre ieșirea anterioară și cea actualizată.

 watch -d 

Ascunde antetul în ieșirea comenzii ceas

În mod implicit, comanda watch afișează un antet în partea de sus a fiecărei ieșiri care conține intervalul de actualizare, numele comenzii și data și ora curente ale sistemului. Puteți elimina antetul din ieșire folosind opțiunea -t:

 watch -t <command> 

Redați bipuri la eroare

Când un proces Linux se termină de rulat, returnează un cod de ieșire. Prin convenție, valoarea este 0 la succes și diferită de zero pentru a reprezenta o eroare. Opțiunea -b a comenzii watch redă un bip dacă comanda returnează o ieșire diferită de zero.

Să presupunem că doriți să monitorizați sshd.service și să primiți notificare când serviciul se oprește; ai folosi:

 watch -b sudo systemctl status sshd.service 

Această comandă va emite sunete sonore când serviciul se oprește. Bip-ul se va opri la reluarea serviciului. Pentru a testa acest lucru, deschideți o altă fereastră de terminal și opriți serviciul. Acest lucru va emite bipuri constante până când veți porni din nou serviciul. Cu toate acestea, pentru a utiliza această caracteristică, trebuie să aveți pachetul de bip instalat pe sistemul dumneavoastră.

  Cum se instalează instrumentul de procesare a imaginilor RawTherapee pe Linux

Ieșiți din comanda ceasului la modificarea ieșirii

De asemenea, puteți spune comenzii watch să se oprească din rulare și să iasă atunci când ieșirea comenzii se modifică. Puteți face acest lucru folosind opțiunea -g. Această opțiune este foarte utilă în scenariile în care așteptați anumite modificări în rezultat.

Odată ce ieșirea se modifică, comanda ceasului se va opri. Puteți combina această utilizare cu comanda echo pentru a afișa un mesaj pe ecran.

De exemplu, luați în considerare un scenariu în care așteptați să ajungă un fișier în directorul dvs. Următoarea comandă va monitoriza directorul pentru fișierul specificat. De îndată ce sosește, comanda watch va înceta să ruleze și fișierul mesaj sosit se va afișa pe terminal.

 watch -g "ls -l | grep filename" && echo "file arrived" 

Un alt exemplu util este o notificare când un anumit utilizator se conectează la sistemul dvs.:

 watch -g "who | grep username" && echo "username logged in" 

Această comandă va monitoriza rezultatul comenzii who care listează utilizatorii care sunt conectați. Odată ce utilizatorul se conectează, comanda watch se va opri și va afișa un mesaj pe terminal.

În mod similar, puteți spune comenzii watch să oprească un serviciu atunci când sunt făcute unele modificări într-un fișier. Rețineți că, atunci când utilizați un lanț de comenzi canalizat, va trebui să includeți întreaga comandă între ghilimele.

Vizionați activități în sistemul dvs. Linux

Dacă faceți același proces în mod repetat, luați în considerare utilizarea comenzii watch pentru a o automatiza. Vă scutește de tastarea frecventă a comenzilor pentru a vedea ce s-a schimbat.

De asemenea, puteți utiliza comanda watch cu alte comenzi Linux pentru a monitoriza resursele și activitățile sistemului și pentru a urmări modificările în fișiere sau directoare.

  Cum să aplicați un patch la un fișier (și să creați patch-uri) în Linux