首页 > 解决方案 > 当命令脚本失败时,如何使我当前正在运行的 Autosys 作业变为 FA [失败]

问题描述

我有一个在 Autosys Job 中的脚本: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

我不希望它将其标记为成功,如果脚本失败..它应该将 AutoSys 标记为 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

标签: shellautosys

解决方案


乍一看,一切似乎都很好。

但是,我建议您可以尝试修改脚本。默认情况下,如果退出代码不为零,除非指定,否则 Autosys 会失败作业。

JOB JIL 似乎很好。

请如下更新您的脚本并检查两件事:

  1. 已执行的作业 EXIT-CODE:应该是 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 是否正确捕获了退出代码。


推荐阅读