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

如何取消特定时间或指定job id之后创建的所有sbatch作业

Slurm 批量取消指定规则作业的实现方法

scancel 本身没有内置类似 -gt 的大小比较语法,你提到的组合 sacct 输出的方案是目前最通用的实现方式,两种需求的具体操作如下:


取消所有Job ID大于指定值的活跃作业

直接通过 sacct 的条件筛选功能匹配符合要求的作业ID,再传给 scancel 即可,示例如下:

# 将12345替换为你的指定Job ID阈值
scancel $(sacct -X -n -o jobid --state=PD,R --where "jobid>12345")

参数说明:

  • -X:仅返回作业主记录,不输出作业子步骤,避免重复匹配
  • -n:隐藏输出表头,只保留纯作业ID内容
  • --state=PD,R:仅匹配处于排队(Pending)、运行(Running)状态的活跃作业,不会命中已结束的历史作业
  • --where "jobid>12345":自定义筛选规则,匹配ID大于阈值的作业

取消所有创建时间晚于指定时间的活跃作业

同样用 sacct 的时间筛选规则即可实现,支持固定时间和相对时间两种写法:

固定时间写法示例

# 将时间替换为你需要的阈值,格式为 YYYY-MM-DDTHH:MM:SS
scancel $(sacct -X -n -o jobid --state=PD,R --where "submit>=2024-05-20T14:30:00")

相对时间写法示例

# 取消过去1小时内提交的所有活跃作业
scancel $(sacct -X -n -o jobid --state=PD,R --where "submit>=now-1hour")

注意事项

执行前可以先单独运行$()内的 sacct 命令,确认输出的作业ID符合预期后再拼接 scancel 执行,避免误删作业。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 07:45:05