Нужна правильная функциональность 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' мог начать извлекать файл из экземпляра, который он выполнил, а не для всего файла.