【问题标题】:Is it possible to I use `sacct --name` by providing only the beginning of the job's name?我可以通过只提供工作名称的开头来使用“sacct --name”吗?
【发布时间】:2018-05-19 13:04:23
【问题描述】:

来自 sacct 手册页:

 --name:
               Display jobs that have any of these name(s).
         Use this comma separated list of uids or user names

当我提供完整的工作名称时,以下命令有效sacct --name [job_name]

$ sacct --name QmRsaBEGcqxQcJbBxCi1LN9iz5bDAGDWR6Hx7ZvWqgqmdR*1*0*-1.sh
       JobID    JobName  Partition    Account  AllocCPUS      State ExitCode
------------ ---------- ---------- ---------- ---------- ---------- --------
43           QmRsaBEGc+      debug      alper          2    TIMEOUT      1:0
43.batch          batch                 alper          2  CANCELLED     0:15

例如,现在我想通过提供名称的开头来检索它,例如Qm*。但我得到一个空字符串。它将* 视为一个字符。

sacct --name Qm*
       JobID    JobName  Partition    Account  AllocCPUS      State ExitCode
------------ ---------- ---------- ---------- ---------- ---------- --------

[Q] 是否可以通过只提供工作名称的开头来使用sacct --name?如果是,怎么做?

【问题讨论】:

    标签: slurm sacct


    【解决方案1】:

    --name 选项不支持通配符模式。实现您正在寻找的结果的一种方法是使用 grep 命令:

    # list all the jobs from January 2018 and filter it leaving those that contain Qm:
    sacct --format=jobid,jobname,ntasks,elapsed,state -S 010118 -u username |grep Qm
    

    【讨论】:

    • 列出完整的作业列表和 grep 是不是效率低下?如果我不知道工作的开始时间,说明读取日期的最佳方法是什么? @卡蒂亚
    • @alper 好吧,如果您将搜索范围缩小到特定用途或一组用户,这应该足够快。至于日期,您不需要指定日期,但如果您在一个非常大的集群上工作,那么您可以缩小搜索范围 - 越好。所以我会尽可能地估计日期。你不需要精确。只是一个粗略的估计。
    • 我意识到这仍然没有返回完整的作业名称。它返回如下:QmRsaBEGc+,其余部分被忽略。 @卡蒂亚
    猜你喜欢
    • 1970-01-01
    • 2012-09-26
    • 1970-01-01
    • 2014-06-13
    • 2010-12-04
    • 1970-01-01
    • 2018-12-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多