首页 > 解决方案 > 如何确定 autosys 作业需要多长时间才能进入“成功”状态

问题描述

谁能帮助我,我正在尝试查找 autosys 作业的当前状态,如下所示: autorep -j jobname -d -L0 | grep "RUNNING" 如果它没有运行,我必须强制启动相同的工作。在成功重新启动同一个作业后,我必须等到作业状态为 SUCCESS 才能继续我的 shell 脚本中的其余命令。请指导,非常感谢您的帮助。下面是我的代码

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 分钟)有没有办法在作业成功后自动触发下一个命令......而不是使用睡眠。再次感谢。

标签: bashshellautosys

解决方案


while sleep 900; do autorep -j jobname -d -L0 |
  awk '$1~/RUNNING/{r=1} END{if(!r) system("fsj jobname")}'; done &

此后台循环将每 15 分钟检查一次 autorep 输出的第一列是否有“RUNNING”,fsj jobname如果找不到匹配项则执行。如果您可以识别它,您还可以跟踪相关进程的 PID。


推荐阅读