Как перевести мое текущее задание Autosys в FA [сбой] при сбое командного скрипта

#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. Код завершения выполненного задания: либо он должен быть 1, либо 2. Мы пытаемся выполнить задание в обоих случаях.
  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 посмотрите, что произойдет