一不小心投了巨多任务,或者投递的资源不合理时,想批量杀掉这些任务。
kill的方法就不说了,我这里用qdel的方法。
用了这么一条命令:
qstat |sed '1,2d' |awk -F' ' '{print $1}' |sed ':x;N;s/\n/ /;b x'|cat
再用qdel
删除即可。这里还是用了两步,而且用sed
将换行符替换为空格很复杂的样子,不友好。
其实可以直接用xargs
简化:
qstat |sed '1,2d' |awk -F' ' '{print $1}' | xargs qdel
也可根据用户或者运行状态有选择性地删除,如只删等待状态的任务而不删除运行中的任务。
qstat -u USERNAME | grep "qw" | cut -d" " -f1 | xargs qdel
同样,删除运行中的任务:
qstat -u USERNAME | grep "r" | cut -d" " -f1 | xargs qdel
cut
和awk
均可
原文:https://www.cnblogs.com/jessepeng/p/11361239.html