我在群集上使用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}
,
我可以将这些步骤合并到一个命令中吗?
协助表示赞赏。
答案 0 :(得分:10)
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"
,看看它会做什么。