web-dev-qa-db-ja.com

qdelを使用して、一度に1つではなく、すべてのジョブを一度に削除します

これはかなり単純な質問ですが、答えを見つけることができませんでした。

クラスター内で多数のジョブを実行しています(20を超える)ので、それらをすべて削除して最初からやり直したいと思います。

このサイト によると、私はちょうどできるはずです:

qdel -u netid

それらをすべて取り除くために、しかし私の場合はそれが返されます:

qdel: invalid option -- 'u'
usage: qdel [{ -a | -c | -p | -t | -W delay | -m message}] [<JOBID>[<JOBID>]|'all'|'ALL']...
   -a -c, -m, -p, -t, and -W are mutually exclusive

これは明らかに、コマンドが機能しないことを示しています。

確認するために、次のことを行いました。

qstat -u <username>

私はすべての仕事のリストを取得していますが、

qdel -u <username>

また失敗します。

46
Gabriel

古いsupercluster.orgスレッド に答えが埋まっていることがわかりました:

qselect -u <username> | xargs qdel

完璧に働いた。

70
Gabriel

ガブリエルの答えに基づいて:

qselect -u <username> | xargs qdel

qselect -u <username> -s <state> | xargs qdel

<state>は、ジョブを実行する場合のみRになります。

qselectを使用すると、要求されたリソース(-l)、宛先キュー(-q)など、他の基準に基づいてジョブを選択できます...

qdel -u <username>

SGEでのみ動作します

37
Y. Boursin

時々、簡単なgrep/cutでも役立ちます:qstat | grep $USER | cut -d. -f1 | xargs qdel

このようにして、ジョブの特定のキーワードでgrep、削除することもできます。

HTH

10
asifzuba
# Delete all jobs owned by the current user.
# 
# Command breakdown:
# ------------------
#
# qselect
# -u selects all jobs that belong to the current user
# -s EHQRTW selects all job states except for Complete
#
# xargs
# --no-run-if-empty Do not run qdel if the result set is empty
#                   to avoid triggering a usage error.
#
# qdel
# -a delete jobs asynchronously
#
# The backslashes are a trick to avoid matching any Shell aliases.

\qselect -u $(whoami) -s EHQRTW | \xargs --no-run-if-empty \qdel -a
3
Jason

試して

$ qdel {id1..id2}

たとえば、次のとおりです。

$ qdel {1148613..1148650}
3
CiaranWelsh

UGEの場合:

qstat -u | gawk '{print $ 1}' | xargs qdel

2
teng_wenxuan

別の可能性は、qdel allを実行することです。全員からすべてのジョブを削除します。他の人の仕事にアクセスできない場合、あなたの仕事だけが削除されます。

それは最も美しい解決策ではありませんが、確かに最短です!

2
guhur
qstat | cut -d. -f1 | sed "s;   \(.*\) 0;qdel \1;" | bash

sedの力。

0
MrMimic