一不小心投了巨多任務,或者投遞的資源不合理時,想批量殺掉這些任務。
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
均可