it-swarm.com.de

Verwenden Sie qdel, um alle meine Jobs gleichzeitig zu löschen

Dies ist eine ziemlich einfache Frage, aber ich konnte keine Antwort finden.

Ich habe eine große Anzahl von Jobs in einem Cluster (> 20) und ich möchte sie alle löschen und von vorne beginnen.

Nach dieser Seite sollte ich einfach in der Lage sein:

qdel -u netid

um sie alle loszuwerden, aber in meinem Fall kehrt das zurück:

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

was offensichtlich darauf hinweist, dass der Befehl nicht funktioniert.

Nur um zu überprüfen, habe ich getan:

qstat -u <username>

und ich bekomme eine Liste aller meiner Jobs, aber:

qdel -u <username>

scheitert auch.

40
Gabriel

Ich habe die Antwort in einem old supercluster.org Thread begraben gefunden :

qselect -u <username> | xargs qdel

Einwandfrei gearbeitet.

65
Gabriel

Kann nicht kommentieren, aber darauf aufbauen, was Gabriel geantwortet hat:

qselect -u <username> | xargs qdel

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

<state> wäre R nur für laufende Jobs.

mit qselect können Sie den Job basierend auf anderen Kriterien auswählen, z. B. Ressourcenquellen (-l), Zielwarteschlange (-q) ...

qdel -u <username>

funktioniert nur mitSGE

31
Y. Boursin

manchmal kann auch ein einfacher grep/cut helfen: qstat | grep $USER | cut -d. -f1 | xargs qdel

Auf diese Weise können wir auch grep für ein bestimmtes Schlüsselwort für die Jobs __en und sie löschen. 

HTH

9
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
2
Jason

Versuchen 

$ qdel {id1..id2}

Also zum Beispiel:

$ qdel {1148613..1148650}
2
CiaranWelsh

Eine andere Möglichkeit ist qdel all. Es löscht alle Jobs von allen. Wenn Sie keinen Zugriff auf den Job anderer Personen haben, werden nur Ihre Jobs gelöscht.

Es ist nicht die schönste Lösung, aber sicherlich die kürzeste!

2
pl-94

Für UGE:

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

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

sEDs Macht.

0
MrMimic