#shell #autosys
#оболочка #автозапуск
Вопрос:
У меня есть скрипт, который находится в задании Autosys : JOB_ABC_S1
command : /ABC/script.sh
Scrpt.sh код
grep -w "ABC" /d/file1.txt
status=$?
if [ $status -eq 0 ]
then
echo "Passed"
else
echo "Failed"
exit 1
fi
Моя проблема в том, что даже если сценарий не удался или прошел, задание AutoSys помечается как SU SUCCESS
Я не хочу, чтобы оно помечало его как успешное, если сценарий завершается неудачей .. он должен пометить автозапуск как FA, а если сценарий пройден, то пометьте задание как SU SUCCESS
Что я должен изменить в скрипте, чтобы это произошло?
Задание :
insert_job : JOB_ABC_S1
machine : XXXXXXXXXXX
owner : XXXXXXXX
box_name : BOX_ABC_S1
application : XXXX
permission : XXXXXXXXXXX
max_run_alarm : 60
alarm_if_fails : y
send_notification : n
std_out_file : XXXXX
std_err_file : XXXXX
command : sh /ABC/script.sh
Комментарии:
1. Можете ли вы, пожалуйста, поделиться полным JIL задания
2. @Piyush пожалуйста, проверьте мой обновленный вопрос, подскажите мне, как выполнить задание с ошибкой
3. дайте мне знать, что вы наблюдаете.
Ответ №1:
На первый взгляд все кажется нормальным.
Тем не менее, я бы предложил модификацию скрипта, которую вы можете попробовать. По умолчанию Autosys завершает работу с ошибкой, если код выхода не равен нулю, если не указан.
С заданием JIL все в порядке.
Пожалуйста, обновите свой скрипт, как показано ниже, и проверьте 2 вещи:
- Код завершения выполненного задания: либо он должен быть 1, либо 2. Мы пытаемся выполнить задание в обоих случаях.
- Файлы журнала Str
Скрипт:
#!/bin/sh
srch_count=$(grep -cw ABC /d/file1.txt)
if [ $srch_count -eq 0 ]; then
echo "Passed"
#exit 0
exit 2
else
echo "Failed"
exit 1
fi
Таким образом, мы можем подтвердить, правильно ли код выхода записывается Autosys.
Комментарии:
1. помимо этого, есть ли у вас какой-либо … другой подход к заданию FA
2. не уверен, что является причиной этого! Попробуйте: определяемый пользователем код выхода в JIL с атрибутами success_codes или fail_codes Измените сценарий для запуска с помощью bash -x /filename попробуйте на любом другом хосте, кроме linux или языка сценариев perl / python
3. создайте задание cmd с командой как exit 101 посмотрите, что произойдет