我在集群上使用 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}
,
我可以将这些步骤组合成一个命令吗?
感谢协助。
最佳答案
awk
qstat | awk '$6 ~ "01/06" {cmd="qdel " $1; system(cmd); close(cmd)}'
bash
#!/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"
以查看它会完成什么。
关于bash - 通过 grepping qstat 输出并将 jobid 发送到 qdel 来删除作业?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4588961/