В этом руководстве мы познакомим вас с командой 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'"
Выводы
К настоящему времени вы должны хорошо понимать, как использовать команду Linux watch
. Вы всегда можете просмотреть все доступные параметры команды watch
, набрав в терминале man watch
.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.