Как да стартирате програма периодично с помощта на командата Watch на Linux

Понякога трябва многократно да стартирате команда или програма, за да наблюдавате различни аспекти на вашата система, като текущи процеси, използване на дисково пространство или потребителски влизания. Командата за наблюдение на Linux ви позволява да автоматизирате тези задачи, без да се налага да ги изпълнявате ръчно отново и отново.

С помощта на тази команда можете да наблюдавате системни дейности в реално време, като влизане на потребители, състояние на мрежата, използване на паметта и процесора, дисково пространство и т.н. Нека видим как да използвате командата watch в Linux.

Какво представлява командата Watch?

Командата watch Linux изпълнява определена команда или програма многократно, на редовни интервали и показва изхода си в терминала. Това ви позволява да наблюдавате промените в изхода в реално време. Той обновява изхода на всеки интервал, като презаписва предишния изход на командата. По подразбиране командата се повтаря на всеки две секунди и продължава, докато не я спрете ръчно с Ctrl + C.

  Как да експортирате и импортирате вашите Linux системи в Windows 10

Гледайте синтаксиса на командите

Синтаксисът на командата watch е:

 watch options <command> 

Има различни опции на командния ред, които можете да използвате с командата watch. Ако изпълните командата watch без никакви опции, тя ще изпълни посочената команда на всеки две секунди. Например, следното ще ви покаже резултата от командата ls:

 watch ls -l ~/ 

Изходът ще ви покаже промените в списъка с директории, ако даден файл е създаден, изтрит или промени размера си, като същевременно обновява изхода на всеки две секунди.

Изпълнявайте команда на всеки X секунди с помощта на часовник

Можете да промените интервала на актуализиране на командата watch. Това означава, че можете да кажете на командата watch да изчака x секунди, преди да повтори командата. За да промените интервала на актуализиране, използвайте опцията -n, последвана от интервала от време в секунди.

 watch -n  

Например, за да изпълните команда на всеки 5 секунди, изпълнете:

 watch -n 5 <command> 

Маркирайте промените между актуализациите

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

 watch -d 

Скриване на заглавката в изхода на командата за гледане

По подразбиране командата watch показва заглавка в горната част на всеки изход, която съдържа интервала на актуализиране, името на командата и текущите дата и час на системата. Можете да премахнете заглавката от изхода, като използвате опцията -t:

 watch -t <command> 

Възпроизвеждане на звукови сигнали при грешка

Когато Linux процес приключи, той връща код за изход. По конвенция стойността е 0 при успех и различна от нула, за да представлява грешка. Опцията -b на командата watch възпроизвежда звуков сигнал, ако командата върне ненулев изход.

  Как да инсталирате OnlyOffice 6.3 на вашия компютър с Linux

Да кажем, че искате да наблюдавате sshd.service и да получавате известия, когато услугата спре; бихте използвали:

 watch -b sudo systemctl status sshd.service 

Тази команда ще издаде звуков сигнал, когато услугата спре. Звуковият сигнал ще спре, когато услугата се възобнови. За да тествате това, отворете друг терминален прозорец и спрете услугата. Това ще дава постоянни звукови сигнали, докато не стартирате отново услугата. Въпреки това, за да използвате тази функция, трябва да имате инсталиран пакет за звуков сигнал на вашата система.

Излезте от командата за часовник при промяна на изхода

Можете също така да кажете на командата watch да спре да работи и да излезе, когато резултатът от командата се промени. Можете да направите това с помощта на опцията -g. Тази опция е много полезна в сценарии, когато чакате определени промени в изхода.

  Как да инсталирате инструмента за обработка на изображения RawTherapee на Linux

След като изходът се промени, командата watch ще спре. Можете да комбинирате тази употреба с командата echo, за да покажете съобщение на екрана.

Например, помислете за сценарий, при който чакате файл да пристигне във вашата директория. Следващата команда ще наблюдава директорията за посочения файл. Веднага щом пристигне, командата за гледане ще спре да се изпълнява и пристигналият файл със съобщение ще се покаже на терминала.

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

Друг полезен пример е известие, когато конкретен потребител влезе във вашата система:

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

Тази команда ще наблюдава изхода на командата who, която изброява потребителите, които са влезли. След като потребителят влезе, командата watch ще спре и ще покаже съобщение на терминала.

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

Гледайте дейности във вашата Linux система

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

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