Как запустить программу периодически с использованием команды watch в Linux

Категория: линукс

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

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

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

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

Что такое команда watch? Команда watch в Linux запускает указанную команду или программу периодически, с определенным интервалом, и выводит ее результаты в терминал. Это позволяет вам наблюдать изменения в выводе в реальном времени.

Она обновляет вывод на каждом интервале, перезаписывая предыдущий вывод команды. По умолчанию команда выполняется каждые две секунды и продолжает работать, пока вы не остановите ее вручную с помощью Ctrl + C.

Синтаксис команды watch Синтаксис команды watch следующий:

watch параметры <команда>

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

watch ls -l ~/

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

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

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

watch -n 5 <команда>

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

watch -d

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

watch -t <команда>

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

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

watch -b sudo systemctl status sshd.service

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

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

После изменения вывода команда watch завершит выполнение. Вы можете использовать эту возможность совместно с командой echo для отображения сообщения на экране.

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

watch -g "ls -l | grep имя_файла" && echo "Файл прибыл"

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

watch -g "who | grep имя_пользователя" && echo "Пользователь вошел"

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

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

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

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





Если вам нужен по настоящему хороший и профессиональный веб хостинг или свой высокопроизводительный сервер, то смело переходите по ссылке и заказывайте!

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *



Карта сайта
Copyright © 2024  
Clicky