Ако установите, че изпълнявате една и съща команда отново и отново, може да има по-добър начин.
Понякога трябва многократно да изпълнявате команда или програма, за да наблюдавате различни аспекти на вашата система, като текущи процеси, използване на дисково пространство или потребителски влизания. Командата за наблюдение на Linux ви позволява да автоматизирате тези задачи, без да се налага да ги изпълнявате ръчно отново и отново.
С помощта на тази команда можете да наблюдавате системните дейности в реално време, като влизане на потребители, състояние на мрежата, използване на паметта и процесора, дисково пространство и др. Нека да видим как да използваме командата watch в Linux.
Какво представлява командата Watch?
Командата watch Linux изпълнява определена команда или програма многократно, на редовни интервали и показва изхода си в терминала. Това ви позволява да наблюдавате промените в изхода в реално време. Той обновява изхода на всеки интервал, като презаписва предишния изход на командата. По подразбиране командата се повтаря на всеки две секунди и продължава, докато не спрете ръчно да я използвате
Ctrl + C.Гледайте синтаксиса на командите
Синтаксисът на командата watch е:
watch options
Има различни опции на командния ред, които можете да използвате с командата watch. Ако изпълните командата watch без никакви опции, тя ще изпълни посочената команда на всеки две секунди. Например, следното ще ви покаже резултата от командата ls:
watch ls -l ~/
Изходът ще ви покаже промените в списъка с директории, ако даден файл е създаден, изтрит или промени размера си, като същевременно обновява изхода на всеки две секунди.
Изпълнявайте команда на всеки X секунди с помощта на часовник
Можете да промените интервала на актуализиране на командата watch. Това означава, че можете да кажете на командата watch да изчака x секунди, преди да повтори командата. За да промените интервала на актуализиране, използвайте -н опция, последвана от интервала от време в секунди.
watch -n
Например, за да изпълните команда на всеки 5 секунди, изпълнете:
watch -n 5
Маркирайте промените между актуализациите
Командата watch презаписва своя изход при всяко опресняване. Използвайки -д опция, можете също да маркирате промените между предишния и актуализирания изход.
watch -d
По подразбиране командата watch показва заглавка в горната част на всеки изход, която съдържа интервала на актуализиране, името на командата и текущите дата и час на системата. Можете да премахнете заглавката от изхода, като използвате -T опция:
watch -t
Възпроизвеждане на звукови сигнали при грешка
Когато Linux процес приключи, той връща код за изход. По конвенция стойността е 0 при успех и различна от нула, за да представлява грешка. Командата на часовника -б опция възпроизвежда звуков сигнал, ако командата върне ненулев изход.
Да приемем, че искате да наблюдавате sshd.service и да получавате известия, когато услугата спре; бихте използвали:
watch -b sudo systemctl status sshd.service
Тази команда ще издаде звуков сигнал, когато услугата спре. Звуковият сигнал ще спре, когато услугата се възобнови. За да тествате това, отворете друг терминален прозорец и спрете услугата. Това ще дава постоянни звукови сигнали, докато не стартирате отново услугата. Въпреки това, за да използвате тази функция, трябва да имате инсталиран пакет за звуков сигнал на вашата система.
Излезте от командата за часовник при промяна на изхода
Можете също така да кажете на командата watch да спре да работи и да излезе, когато резултатът от командата се промени. Можете да направите това с помощта на -g опция. Тази опция е много полезна в сценарии, когато чакате определени промени в изхода.
След като изходът се промени, командата watch ще спре. Можете да комбинирате тази употреба с командата echo, за да покажете съобщение на екрана.
Например, помислете за сценарий, при който чакате файл да пристигне във вашата директория. Следващата команда ще наблюдава директорията за посочения файл. Веднага щом пристигне, командата за гледане ще спре да се изпълнява и съобщението файлът пристигна ще се покаже на терминала.
watch -g "ls -l | grep filename" && echo "file arrived"
Друг полезен пример е известие, когато конкретен потребител влезе във вашата система:
watch -g "who | grep username" && echo "username logged in"
Тази команда ще наблюдава изхода на who команда, която изброява потребителите, които са влезли. След като потребителят влезе, командата за гледане ще спре и ще покаже съобщение на терминала.
По същия начин можете да кажете на командата watch да спре услуга, когато се направят някои промени във файл. Имайте предвид, че когато използвате конвейерна верига от команди, ще трябва да оградите цялата команда в кавички.
Гледайте дейности във вашата Linux система
Ако установите, че извършвате един и същ процес многократно, обмислете използването на командата watch, за да го автоматизирате. Спестява ви от честото въвеждане на командите, за да видите какво се е променило.
Можете също да използвате командата watch с други Linux команди, за да наблюдавате системните ресурси и дейности и да проследявате промените във файлове или директории.