- Как использовать команду watch в Linux
- Обзор команды watch в Linux
- Синтаксис команды watch в Linux
- Примеры команд watch в Linux
- Запуск команды с пользовательским интервалом
- Выделение изменений между обновлениями
- Выход при изменении
- Скрыть заголовок команды watch
- Оповещение об ошибке
- Использование сложных команд
- Заключение
- Похожие записи:
- Команда watch Linux
- Команда watch в Linux
- Синтаксис и опции
- Примеры использования watch
- Выводы
Как использовать команду 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:
watch -n [интервал в секундах] [команда]
Например, чтобы выводить системное время и дату каждые 5 секунд, выполните команду:
Используйте параметр -n для установки пользовательского интервала
Опция -n позволяет использовать доли секунды с минимальным интервалом в 0,1 секунды. При вводе десятичных цифр в любой локали работает как точка (.), так и запятая (,).
Выделение изменений между обновлениями
Используйте опцию -d или —difference, чтобы выделить изменения между последовательными обновлениями вывода:
Например, отображение системной даты и времени с интервалом в 2 секунды по умолчанию с выделением изменений:
Передайте =cumulative к опции -d, если вы хотите, чтобы все значения, которые когда-либо изменялись, оставались выделенными:
Выход при изменении
Опция -g или —chgexit заставляет команду watch выйти, если в выводе есть изменения:
В качестве примера, добавление команды free отслеживает потребление памяти вашей системой и выходит при изменении значения:
Скрыть заголовок команды watch
Отключите заголовок, содержащий время интервала, команду, заданную пользователем, и текущее системное время в выводе команды watch, используя опцию -t или —no-title:
Возвращаясь к примеру отображения системной даты и времени, на этот раз без заголовка:
Оповещение об ошибке
Команда watch использует пакет beep для воспроизведения звукового предупреждения, если обновление вывода не удалось из-за ошибки. Для этого используйте опцию -b или —beep:
Если у вас не установлен пакет beep, добавьте его с помощью команды sudo apt install beep.
Использование сложных команд
Команда watch также позволяет использовать более сложные команды, определяемые пользователем, с собственными аргументами и опциями. Один из способов сделать это — использовать символ обратной косой черты (‘\’):
Использование приведенной выше команды приведет вас к следующей строке в терминале, где вам нужно будет добавить пользовательскую команду. Как только вы нажмете Enter, команда будет выполнена. Например:
watch -n 5 \ echo "Вывод примера команды watch"
Другой вариант — добавить определяемую пользователем команду в одинарных кавычках:
Используя приведенный выше пример, команда будет выглядеть следующим образом:
Добавление сложной команды с использованием одинарных кавычек
Заключение
После прочтения этого руководства вы должны лучше понимать, как работает команда watch и для чего ее можно использовать.
Похожие записи:
Команда watch Linux
Иногда возникает необходимость запускать ту или иную команду несколько раз. К примеру, если были замечены неполадки в работе сервера и есть основания полагать, что их причина кроется в использовании памяти либо выполнении операций ввода и вывода. Также это может понадобиться для отслеживания изменений в каталогах. Во всех этих и других случаях на помощь придет команда watch.
По умолчанию команда watch linux включена почти во все дистрибутивы Linux. Ее задача — запускать указанную пользователем команду через определенные промежутки времени и печатать вывод этой команды в окне терминала. Работу watch можно сравнить с работой tail, с той лишь разницей, что источником вывода является не файл журнала, а другая команда.
Команда watch в Linux
Синтаксис и опции
Синтаксис команды watch крайне прост:
watch опции команда_для_вывода
Перечень опций невелик, но их достаточно для эффективного использования команды:
- -d (—differences) — служит для выделения тех данных в выводе команды, которые отличаются от предыдущих.
- -n (—interval seconds) — позволяет установить желаемый интервал запуска команды.
- -t (—no-title) — выключает отображение заголовков.
- -b (—beep) — если при выполнении команды возникнет ошибка, будет подан звуковой сигнал.
- -e (—errexit) — при возникновении ошибки вывод данных будет заморожен, команда watch прекратит работу после нажатия комбинации клавиш.
- -g (—chgexit) — выход при условии, что в выводе команды обнаружатся изменения.
- -c (—color) — интерпретирует последовательность цветов и стилей ANSI.
- -x (—exec) — выполнение команды будет передано интерпретатору sh -c поэтому, возможно, вам придется использовать дополнительные кавычки чтобы добиться желаемого эффекта. При использовании полной версии написания (—exec) команда будет выполняться в с помощью утилиты exec.
Примеры использования watch
Проще всего продемонстрировать работу команды watch, наблюдая за тем, как компьютер использует оперативную память:
В данном случае не были использованы опции команды watch, зато к выполняемой команде free пришлось добавить параметр -m, который отвечает за отображение свободной памяти RAM. Так тоже можно и нужно делать, чтобы получить искомый результат.
Чтобы не запоминать каким был предыдущий результат вывода и не отслеживать изменения самостоятельно, стоит поручить эту работу опции -d. Она подсвечивает ту информацию, которая отличается от предыдущей:
На каждом из скриншотов в верхней строке есть надпись «Every 2,0s». Она означает, что программа перезапускается каждые 2 секунды. Этот интервал установлен по умолчанию, но его можно изменить, используя опцию -n.
watch -n5 -d ‘cat /proc/loadavg’
Обратите внимание на то, что значение -n не может быть меньше 1. Верхняя планка не ограничена.
Если возникла необходимость получить на экране терминала больше места для полезных данных, можно убрать заглавную информацию. Для этого предназначена опция -t.
Интервал обновления, опции команды и текущая дата больше не отображаются.
Что касается выхода из утилиты watch, то он осуществляется при нажатии клавиш Ctrl+C или Ctrl+Z. Пока пользователь не воспользуется одной из этих комбинаций, команда будет выполняться с заданными параметрами.
Выводы
Команда watch linux — это простой и эффективный инструмент для всех, кто занимается администрированием серверов. Впрочем, и обычные пользователи могут найти ей применение. Если у вас возникли вопросы относительно использования watch на компьютерах с установленной операционной системой Linux, задавайте их в комментариях.
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.