[linux] 大批量删除任务

一不小心投了巨多任务,或者投递的资源不合理时,想批量杀掉这些任务。


image.png

kill的方法就不说了,我这里用qdel的方法。
用了这么一条命令:

 qstat |sed '1,2d' |awk -F' ' '{print $1}' |sed ':x;N;s/\n/ /;b x'|cat
image.png

再用qdel删除即可。这里还是用了两步,而且用sed将换行符替换为空格很复杂的样子,不友好。

image.png

其实可以直接用xargs简化:

qstat |sed '1,2d' |awk -F' ' '{print $1}' | xargs qdel
image.png

也可根据用户或者运行状态有选择性地删除,如只删等待状态的任务而不删除运行中的任务。

qstat -u USERNAME | grep "qw" | cut -d" " -f1 | xargs qdel
image.png

同样,删除运行中的任务:

qstat -u USERNAME | grep "r" | cut -d" " -f1 | xargs qdel

cutawk均可

你可能感兴趣的:([linux] 大批量删除任务)