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

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

Используя эту команду, вы можете отслеживать действия системы в режиме реального времени, такие как входы пользователей, состояние сети, использование памяти и процессора, дисковое пространство и т. д. Давайте посмотрим, как использовать команду watch в Linux.

Что такое команда наблюдения?

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

instagram viewer
Ctrl + С.

Посмотреть синтаксис команд

Синтаксис команды просмотра:

watch options 

Существуют различные параметры командной строки, которые можно использовать с командой watch. Если вы запустите команду просмотра без каких-либо параметров, указанная команда будет запускаться каждые две секунды. Например, следующее покажет вам вывод команды ls:

watch ls -l ~/

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

Запуск команды каждые X секунд с помощью часов

Вы можете изменить интервал обновления команды просмотра. Это означает, что вы можете указать команде просмотра подождать x секунд, прежде чем повторять команду. Чтобы изменить интервал обновления, используйте вариант, за которым следует интервал времени в секундах.

watch -n 

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

watch -n 5 

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

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

watch -d

По умолчанию команда watch отображает заголовок в верхней части каждого вывода, который содержит интервал обновления, имя команды, а также текущую дату и время системы. Вы можете удалить заголовок из вывода, используя вариант:

watch -t 

Воспроизведение звуковых сигналов при ошибке

Когда процесс Linux завершает работу, он возвращает код выхода. По соглашению, значение равно 0 в случае успеха и отличному от нуля значению, обозначающему ошибку. Команда наблюдения Опция воспроизводит звуковой сигнал, если команда возвращает ненулевой выход.

Допустим, вы хотите отслеживать sshd.service и получать уведомления, когда служба останавливается; вы бы использовали:

watch -b sudo systemctl status sshd.service

Эта команда издаст звуковой сигнал при остановке службы. Звуковой сигнал прекратится, когда обслуживание возобновится. Чтобы проверить это, откройте другое окно терминала и остановите службу. Это будет давать постоянные звуковые сигналы, пока вы не запустите службу снова. Однако, чтобы использовать эту функцию, в вашей системе должен быть установлен пакет звуковых сигналов.

Выход из команды просмотра при изменении выхода

Вы также можете указать команде просмотра прекратить выполнение и выйти, когда выходные данные команды изменятся. Вы можете сделать это, используя вариант. Эта опция очень полезна в сценариях, когда вы ожидаете определенных изменений в выходных данных.

Как только выходные данные изменятся, команда наблюдения остановится. Вы можете комбинировать это использование с командой echo для отображения сообщения на экране.

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

watch -g "ls -l | grep filename" && echo "file arrived"

Еще один полезный пример — уведомление, когда определенный пользователь входит в вашу систему:

watch -g "who | grep username" && echo "username logged in"

Эта команда будет контролировать вывод Команда who, в которой перечислены вошедшие в систему пользователи. Как только пользователь войдет в систему, команда просмотра остановится и отобразит сообщение на терминале.

Аналогичным образом вы можете указать команде watch остановить службу при внесении некоторых изменений в файл. Имейте в виду, что при использовании конвейерной цепочки команд вам необходимо заключить всю команду в кавычки.

Наблюдайте за действиями в вашей системе Linux

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

Вы также можете использовать команду watch с другими командами Linux для мониторинга системных ресурсов и действий, а также отслеживания изменений в файлах и каталогах.