
В этом уроке мы познакомим вас с командой watch .
watch используется для запуска любой произвольной команды через регулярные интервалы времени и отображает вывод команды в окне терминала.
Это полезно, когда вам приходится многократно выполнять команду и наблюдать за изменением её вывода с течением времени. Например, команду watch можно использовать для мониторинга времени работы системы или использования диска.
Утилита watch является частью пакета procps (или procps-ng ), который предустановлен практически во всех дистрибутивах Linux.
Как использовать watch команды
Синтаксис команды watch следующий:
watch [ OPTIONS ] COMMAND
Чтобы лучше проиллюстрировать работу команды watch давайте выполним команду date :
watch date

Как видно на изображении выше, команда watch временно очистит всё содержимое терминала и начнёт выполнять указанную команду через регулярные интервалы. При использовании без каких-либо опций watch будет выполнять указанную команду каждые две секунды.
В левом верхнем углу заголовка экрана отображается интервал обновления watch и выполненная команда ( Every 2.0s: date ), а в левом верхнем углу watch показывают текущее время и дату. Чтобы отключить заголовок, используйте опцию -t ( --no-title ).
Вывод указанной команды отображается на экране и регулярно обновляется каждые две секунды.
Чтобы выйти из команды watch , просто нажмите сочетание клавиш Ctrl+C . Вы также можете настроить watch на выход при изменении вывода команды, используя опцию -g ( --chgexit ).
В следующих разделах мы рассмотрим наиболее часто используемые параметры команд watch .
Как изменить временной интервал
Что делать, если интервал обновления по умолчанию в две секунды не подходит для вашего варианта использования?
Опция -n ( --interval ), за которой следует желаемое количество секунд, позволяет изменить временной интервал между обновлениями:
watch -n INTERVAL_IN_SECONDS COMMAND
Например, чтобы отслеживать использование дискового пространства с помощью команды df и обновлять экран каждые пять секунд, вам нужно выполнить:
watch -n 5 df -h

Подчеркивая разницу между обновлениями
Параметр -d ( --difference ) заставит watch выделить изменения между последовательными обновлениями.
watch -d COMMAND
Предположим, вы хотите отслеживать время бесперебойной работы системы, выполнив команду uptime и отобразив изменения. Команда будет выглядеть так:
watch -d uptime

Чтобы сделать подсветку постоянной, передайте =cumulative параметру -d . Это означает, что все когда-либо изменившиеся значения останутся подсвеченными.
watch -d = cumulative COMMAND
Команды с вертикальными линиями
Если вы хотите выполнить команду, содержащую символы вертикальной черты, необходимо заключить её в одинарные или двойные кавычки. Если команда не заключена в кавычки полностью, watch выполнит только первую команду, а затем передаст её вывод следующей команде в конвейере.
watch 'COMMAND_1 | COMMAND_2'
Например, следующая команда будет отслеживать количество активных подключений на порту 80 , используя комбинацию утилит netstat и grep :
watch "netstat -anp | grep -c ':80b.*LISTEN'"
Заключение
К настоящему моменту вы должны хорошо понимать, как использовать команду watch в Linux. Вы всегда можете просмотреть все доступные параметры команды watch , введя команду man watch в терминале.
Если у вас есть вопросы или пожелания, не стесняйтесь оставлять комментарии.
Связанные руководства