【问题标题】:delete jobs by grepping qstat output and sending jobid to qdel?通过 grepping qstat 输出并将 jobid 发送到 qdel 来删除作业?
【发布时间】:2011-01-03 22:25:24
【问题描述】:

我在集群上使用 PBS 作业调度程序,我想使用 qdel 删除某个日期之前的作业;或者,能够按日期对qstat 的结果进行排序就足够了。

qstat 给出这个输出:

job-ID  prior   name       user         state submit/start at     queue                          slots ja-task-ID 
-----------------------------------------------------------------------------------------------------------------
 326539 0.50500 run        user         r     01/06/2011 11:13:34 all.q@compute-0-0.local            1        
 326594 0.50500 run        user         r     01/06/2011 11:13:34 all.q@compute-0-0.local            1    

我可以使用qdel删除作业:

qdel 326539

我想删除的作业可以使用grep定位:

qstat > foo; grep 01/06 foo

我目前的解决方法是将上面的输出粘贴到电子表格中,按作业 ID 排序,然后按qdel {min..max}

我可以将这些步骤组合成一个命令吗?

感谢您的帮助。

【问题讨论】:

  • @siegeX 你是对的,我已经修正了错字

标签: bash grep pbs


【解决方案1】:

awk

qstat | awk '$6 ~ "01/06" {cmd="qdel " $1; system(cmd); close(cmd)}'

重击

#!/bin/bash

match="01/06"

while read job; do
  set -- $job
  if [[ $6 =~ $match ]]; then
    qdel "$1"
  fi
done < <(qstat)

如果您想进行试运行,请将qdel "$1" 更改为echo qdel "$1" 看看它会做什么。

【讨论】:

    猜你喜欢
    • 2019-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-05
    • 2014-10-01
    • 2023-03-04
    • 1970-01-01
    • 2022-08-19
    相关资源
    最近更新 更多