Есть ли лучший способ grep большого файла и выйти из выполнения, когда строка соответствует? - PullRequest
0 голосов
/ 09 января 2019

Нужна правильная функциональность grep для запуска grep с момента запуска скрипта.

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

Существует кластер из 2 серверов: 1 администратор и 2 управляемых (Node2 и Node1).

Желаемый шаблон есть, Стоп N2, Старт N2, Стоп N1, Старт N1

#startN2
nohup sh startstopAIA2.sh start > N2Start.out &
sleep 1s
until fgrep -q "accepting" /path/logs/AIAPPD2D_SOA2.out; do sleep 1;
done
sleep .5s
echo "N2 is running. Proceeding to restart N1"

#stopN1

Теперь AIAPPD2D_SOA2.out - это гигантский файл, и его вряд ли можно повернуть. Кроме того, когда часть «Пока fgrep» видит существующую «принимающую» строку из предыдущего перезапуска, она перезапускается с N1, который должен ждать, пока N2 не будет полностью активирован.


Файл журнала проштампован этим куском. «Платформа SOA работает и принимает запросы «

Было бы замечательно, если бы мой 'grep before' мог начать извлекать файл из экземпляра, который он выполнил, а не для всего файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...