Команда Linux для запуска сценария оболочки при получении любого ввода - PullRequest
0 голосов
/ 29 ноября 2018

Мне нужно отслеживать stderr на наличие определенного сообщения об ошибке, и при его обнаружении запустить скрипт оболочки.

Текущая идея состоит в том, чтобы передать stderr в grep и отфильтровать сообщение.Я бы перенаправил вывод grep в какую-нибудь программу, которая запускала бы мой скрипт при получении любого пользовательского ввода.

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

Есть ли лучший способ сделать это?

1 Ответ

0 голосов
/ 29 ноября 2018

Я бы хотел порекомендовать inotifywait.

  • Мониторинг stderr-log.txt на наличие изменений.
  • Прочитать файл и grep сообщение stderr.
  • Вызовите другой скрипт, если сообщение об ошибке найдено

    while:;do inotifywait -q -e modify ./stderr-log.txt > /dev/null if cat stderr-log.txt | grep -q <error message>; then <do something here..> fi done

...