Как использовать команду watch в Linux

Для многократного выполнения команды или задания через регулярные промежутки времени при работе в Linux можно использовать задания cron или сценарии bash. Однако Linux также предлагает более простое, встроенное решение - команду watch.

В этом руководстве вы узнаете синтаксис команды watch, как она работает, и различные вещи, которые она может помочь вам сделать.

Обзор команды watch в Linux

Команда watch - это встроенная утилита Linux, используемая для выполнения определенных пользователем команд через регулярные промежутки времени. Она временно очищает все содержимое терминала и отображает вывод подключенной команды, а также текущую системную дату и время.

По умолчанию команда watch обновляет вывод каждые две секунды. Нажмите Ctrl+C, чтобы выйти из вывода команды.

Команда watch полезна, когда необходимо отслеживать изменения в выводе команды с течением времени. К ним относятся использование диска, время работы системы или отслеживание ошибок.

Синтаксис команды watch в Linux

Команда watch использует следующий синтаксис:

Где:

  • [опция]: Добавление опции изменяет поведение команды watch. Доступные опции перечислены ниже.
  • [команда]: Определенная пользователем команда, которую вы хотите выполнять многократно.

Опции команды watch включают:

-n, --interval Позволяет указать интервал между обновлениями вывода.
-d, --differences Выделяет различия между обновлениями вывода.
-g, --chgexit Выходит из команды watch при изменении вывода пользовательской команды.
-t, --no-title Удаляет заголовок с указанием интервала, команды и текущего времени и даты.
-b, --beep Воспроизводит звуковое оповещение (бип), если команда завершается с ошибкой.
-p, --precise Пытается выполнить команду через точное количество секунд, заданное параметром --interval.
-e, --errexit Останавливает обновление вывода при ошибке и завершает команду после нажатия клавиши.
-c, --color Интерпретирует последовательности цветов и стилей ANSI.
-x, --exec Передает команду, заданную пользователем, в exec, уменьшая необходимость в дополнительном цитировании.
-w, --no-linewrap Отключает обводку строк и обрезает длинные строки.
-h, --help Отображает текст справки и завершает работу.
-v, --version Отображает информацию о версии и завершает работу.

Примеры команд watch в Linux

Вот некоторые способы использования опций команды watch для достижения различных результатов:

Запуск команды с пользовательским интервалом

Задайте пользовательский интервал для выполнения определенной пользователем команды и покажите вывод с помощью опции -n или --interval:

Например, чтобы выводить системное время и дату каждые 5 секунд, выполните команду:

Запуск команды с пользовательским интервалом

Используйте параметр -n для установки пользовательского интервала

Опция -n позволяет использовать доли секунды с минимальным интервалом в 0,1 секунды. При вводе десятичных цифр в любой локали работает как точка (.), так и запятая (,).

Выделение изменений между обновлениями

Используйте опцию -d или --difference, чтобы выделить изменения между последовательными обновлениями вывода:

Например, отображение системной даты и времени с интервалом в 2 секунды по умолчанию с выделением изменений:

Используйте опцию -d для выделения изменений между выводами

Передайте =cumulative к опции -d, если вы хотите, чтобы все значения, которые когда-либо изменялись, оставались выделенными:

Выход при изменении

Опция -g или --chgexit заставляет команду watch выйти, если в выводе есть изменения:

В качестве примера, добавление команды free отслеживает потребление памяти вашей системой и выходит при изменении значения:

Используйте опцию -g для выхода из команды watch при изменении выходных данных

Скрыть заголовок команды watch

Отключите заголовок, содержащий время интервала, команду, заданную пользователем, и текущее системное время в выводе команды watch, используя опцию -t или --no-title:

Возвращаясь к примеру отображения системной даты и времени, на этот раз без заголовка:

Оповещение об ошибке

Команда watch использует пакет beep для воспроизведения звукового предупреждения, если обновление вывода не удалось из-за ошибки. Для этого используйте опцию -b или --beep:

Если у вас не установлен пакет beep, добавьте его с помощью команды sudo apt install beep.

Использование сложных команд

Команда watch также позволяет использовать более сложные команды, определяемые пользователем, с собственными аргументами и опциями. Один из способов сделать это - использовать символ обратной косой черты ('\'):

Использование приведенной выше команды приведет вас к следующей строке в терминале, где вам нужно будет добавить пользовательскую команду. Как только вы нажмете Enter, команда будет выполнена. Например:

Другой вариант - добавить определяемую пользователем команду в одинарных кавычках:

Используя приведенный выше пример, команда будет выглядеть следующим образом:

watch -n 5 "echo "пример вывода команды watch"

Добавление сложной команды с использованием одинарных кавычек

Заключение

После прочтения этого руководства вы должны лучше понимать, как работает команда watch и для чего ее можно использовать.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий