10

我在集群上使用 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}

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

协助表示赞赏。

4

1 回答 1

10

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"以查看它会做什么。

于 2011-01-07T04:41:42.050 回答