【发布时间】:2018-09-10 19:01:08
【问题描述】:
如果我知道我运行的作业的名称,我怎么能通过脚本只返回它的 jobID。
例如,运行sacct --name run.sh 会返回以下输出,而我只想返回50 (jobID)。
$ sacct --name run.sh
JobID JobName Partition Account AllocCPUS State ExitCode
------------ ---------- ---------- ---------- ---------- ---------- --------
50 run.sh debug alper 1 COMPLETED 0:0
50.batch batch alper 1 COMPLETED 0:0
作为一个解决方案,我可以运行:sacct --name run.sh | head -n3 | tail -n1 | awk '{print $1}' 返回50,但有时50 和50.batch 的顺序会因其他作业而改变。
【问题讨论】:
-
我无法评论您的策略有多稳健。在这种情况下,尽管您可以
grep再次将sacct的输出作为您的工作名称。 -
如果您想经常这样做,您可以考虑将作业 ID 存储到作业脚本中的文件中,例如
echo "$SLURM_JOB_ID" > jobid.log