在回归时,想一次性kill掉所有回归job可以使用下面的脚本。
使用bjobs命令看当前正在执行的job,通常如下所示
JOBID USER STAT QUEUE FROM_HOST EXEC_HOST JOB_NAME SUBMIT_TIME
76286 xx RUN normal nxnode04 dm019 smverdi Dec 19 10:17
644500 xx RUN normal nxnode04 cm082 smverdi Dec 24 15:50
669544 xx RUN normal nxnode04 cm084 smverdi Dec 24 19:19
677324 xx RUN normal nxnode04 cm091 smverdi Dec 25 10:18
678514 xx RUN normal nxnode04 cm050 smverdi Dec 25 10:45
694361 xx RUN regression dm011 cm014 *
fifo_full Dec 25 15:02
694363 xx RUN regression dm011 cm069 *fifo_full Dec 25 15:02
694365 xx RUN regression dm011 cm069 *fifo_full Dec 25 15:02
694367 xx RUN regression dm011 cm018 *fifo_full Dec 25 15:02
694370 xx RUN regression dm011 cm069 *fifo_full Dec 25 15:02
规律非常明显:
1)第一列,是job号
2)第四列,表明jobs的类型,比如回归的就是regression
我们只要找到第四列为regression关键字,找到对应的job号,然后调用bkii即开。
完整的脚本如下:(不知道怎么插入本地图片,就没截图,附件中有截图)
#!/usr/bin/python
import os
print ("kill regress jobs")
job = os.popen("bjobs")
job_list = job.readlines()
for i in job_list:
each_list = i.split()
if(each_list[3] == "regression"):
print (each_list[0],each_list[3])
os.popen("bkill %s" % (each_list[0]))
简单说明:
1)ob = os.popen("bjobs")存下所有的job
2)job_list=job.readlines(),转成list
3)for循环,找到regression关键词,打印,再kill掉