В этой статье мы познакомим вас с командой watch.
watch используется для запуска любой произвольной команды через равные промежутки времени и отображает вывод команды в окне терминала.
Это полезно, когда вам приходится многократно выполнять команду и наблюдать за изменением выходных данных команды с течением времени. Например, вы можете использовать команду watch для контроля времени работы системы или использования диска.
Утилита watch является частью пакета procps(или procps-ng), который предварительно установлен почти во всех дистрибутивах Linux.
Синтаксис для команды watch выглядит следующим образом:
watch [OPTIONS] COMMAND
Чтобы лучше проиллюстрировать, как работает команда watch, давайте запустим команду date:
watch date
Как вы можете видеть на изображении выше, команда watch временно удалит все содержимое терминала и начнет выполнять предоставленную команду через регулярные промежутки времени. При использовании без какой-либо опции watch будет запускать указанную команду каждые две секунды.
В верхней левой части заголовка экрана вы можете видеть интервал обновления часов и выполненную команду ( Every 2.0s: date), в то время как в верхней левой части часов отображаются текущее время и дата. Если вы хотите повернуть заголовок, используйте опцию -t( —no-title).
Вывод указанной команды отображается на экране и регулярно обновляется каждые две секунды.
Чтобы выйти из режима ожидания, просто нажмите комбинацию клавиш Ctrl+C. Вы также можете настроить часы на выход при изменении выходных данных команды, используя опцию -g( —chgexit).
В следующих разделах мы рассмотрим наиболее часто используемые параметры команды наблюдения.
Что если интервал обновления по умолчанию в две секунды не подходит для вашего варианта использования?
Параметр -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 ':80\b.*LISTEN'"
К настоящему времени вы должны хорошо понимать, как использовать команду watch в Linux. Вы всегда можете просмотреть все доступные опции команды watch, набрав man watch в своем терминале.