You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Slurm的squeue命令仅以小时显示作业时限?

解决Slurm squeue时限列转为小时数的问题

Slurm的squeue命令本身没有原生选项可以直接将%l指定的时限列从天-时:分:秒格式转换为总小时数,但可以通过管道结合awk工具处理输出来实现需求,同时保留已用时间(%M)的原有格式。

修改后的命令

squeue --format="%.6i %.5P %.25j %.8u %.8T %.10M %.5l %.15b %.5C %.6D %R" --sort=+i --me | awk '
    NR==1 {print; next}
    {
        # 处理带天的格式(如1-00:00:00)
        if ($7 ~ /-/) {
            split($7, time_parts, /[-:]/)
            total_hours = time_parts[1] * 24 + time_parts[2]
        } 
        # 处理无天的格式(如02:30:00)
        else {
            split($7, time_parts, /:/)
            total_hours = time_parts[1]
        }
        $7 = total_hours
        print
    }
'

命令说明

  1. 原squeue命令:保留你原本指定的输出格式、排序规则和仅显示自身作业的参数,确保已用时间(%M)的格式不变。
  2. awk处理逻辑:
    • NR==1 {print; next}:如果是表头行(若squeue输出包含表头),直接打印不做处理。
    • 针对第7个字段(即时限列):
      • 若字段包含-,说明是天-时:分:秒格式,拆分后天数乘以24加上小时数得到总小时数。
      • 若字段仅为时:分:秒格式,直接提取小时数作为结果。
    • 替换第7字段为计算后的总小时数,打印整行内容。

效果示例

原输出中的时限列1-00:00:00会被转换为24,已用时间1:14:14保持不变,最终输出类似:

276350 qgpu jobname username RUNNING 1:14:14 24 gres:gpu:v100:1 18 1 s31n02

内容的提问来源于stack exchange,提问作者Armadillo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 21:25:37