Wie kann ich ein Bash-Skript automatisch ausführen, wenn meine Qsub-Jobs auf einem Server abgeschlossen sind?

Ich möchte ein Skript ausführen, wenn alle Aufträge, die ich an einen Server gesendet habe, abgeschlossen sind.

zum Beispiel sende ich

ssh server "for i in config*; do qsub ./run 1 $i; done"

Und ich erhalte eine Liste der gestarteten Jobs zurück. Ich möchte automatisch ein anderes Skript auf dem Server starten, um die Ausgabe dieser Jobs zu verarbeiten, sobald alle abgeschlossen sind.

Ich würde mich über jeden Rat freuen, der mir helfen würde, die folgende unelegante Lösung zu vermeiden:

Wenn ich jede der 1000 Job-IDs aus dem obigen Aufruf in einer separaten Datei speichere, könnte ich den Inhalt jeder Datei mit der aktuellen Liste der ausgeführten Jobs vergleichen, d. H. Die Ausgabe eines Aufrufs an:

ssh qstat

Ich müsste nur jede halbe Stunde nachsehen, aber ich könnte mir vorstellen, dass es einen besseren Weg gibt.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage