【问题标题】:Slurm: How to obtain only jobID using jobName through a scriptSlurm:如何通过脚本使用jobName仅获取jobID
【发布时间】: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,但有时5050.batch 的顺序会因其他作业而改变。

【问题讨论】:

  • 我无法评论您的策略有多稳健。在这种情况下,尽管您可以 grep 再次将 sacct 的输出作为您的工作名称。
  • 如果您想经常这样做,您可以考虑将作业 ID 存储到作业脚本中的文件中,例如 echo "$SLURM_JOB_ID" > jobid.log

标签: slurm sacct


【解决方案1】:

使用以下选项组合:

sacct -n -X --format jobid --name run.sh 

在哪里

  • -n 将抑制标题
  • -X 将抑制 .batch 部分
  • --format jobid 只会显示 jobid 列

这只会输出jobid,但是如果有几个job对应给定的job name,你会得到几个结果。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-18
    • 2021-05-08
    • 2015-10-31
    • 1970-01-01
    • 1970-01-01
    • 2019-11-19
    • 2010-12-06
    • 2016-02-06
    相关资源
    最近更新 更多