#!/bin/bash
sudo tail -fn0 /home/main/time.log |
grep -o --line-buffered 'garage\|garden\|porch' | head -1 |
while read line; do
sudo pkill -f porch.sh &
sudo pkill -f garage.sh &
done
Я пытаюсь написать скрипт, который следит за журналом, и после сопоставления с ключевым словом он запустит некоторые команды.
Проблема в том, что то, что я собрал, сработает только один раз, затем выйдет и остановит мониторинг.
Если в хвосте появляется несколько ключевых слов одновременно, я хочу, чтобы он выполнялся при первом ключевом слове, игнорировать остальные ключевые слова, выполнить перечисленные сценарии, а затем вернуться к мониторингу хвоста журнала. Я добавил "голову -1" в grep, чтобы остановить grep после первого совпадения, но это также приводит к выходу из grep, поэтому скрипт в основном останавливает мониторинг.
Я бы предпочел, чтобы сценарий оставался активным после того, как он соответствует ключевому слову, и продолжал отслеживать хвост журнала для любых новых ключевых слов, которые могут быть зарегистрированы.
Любой совет очень ценится. Спасибо!