как определить, сколько времени требуется работе autosys для перехода в состояние «успех» - PullRequest
1 голос
/ 06 апреля 2019

Может кто-нибудь мне помочь, я пытаюсь узнать текущее состояние работы autosys, как показано ниже: autorep -j имя-задания -d -L0 | grep "RUNNING" и если он не запущен, я должен принудительно запустить ту же работу. После того, как то же самое задание было успешно перезапущено, мне нужно дождаться, пока состояние задания не станет УСПЕХОМ, чтобы продолжить с остальными командами в моем сценарии оболочки. Пожалуйста, руководство, большое спасибо за вашу помощь. Ниже мой код

status=`autorep -j jobname -d -L0 | grep "RUNNING"| awk '{print$1}'
echo $status
if["$status"=="RUNNING"];then
echo "The job is in RUNNING state"
else
echo "Force starting the job now !"
fsj jobname
fi

и после успешного выполнения задания я могу продолжить работу с остальными сценариями. Но вопрос в том, как узнать, нужно ли мне спать 30 минут, 40 минут и т. Д. (Appx работает 30 минут). Есть ли способ автоматически вызвать следующую команду, после того, как задание выполнено успешно ... вместо использования сна. Еще раз спасибо.

1 Ответ

1 голос
/ 06 апреля 2019
while sleep 900; do autorep -j jobname -d -L0 |
  awk '$1~/RUNNING/{r=1} END{if(!r) system("fsj jobname")}'; done &

Этот фоновый цикл будет проверять первый столбец вывода autorep на «RUNNING» каждые 15 минут, выполняя fsj jobname, если не найдено совпадение. Вы также можете отследить PID соответствующего процесса, если сможете его идентифицировать.

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