'at' Kommando beabsichtigtes Verhalten? Starten Sie die einzelnen Befehle anstelle der Zeitplanung

631
Mick Hardins

Ich versuche, die Ausführung einiger Programme zu planen. Ich verwende diesen Befehl:

./tests.o | at 15:00& 

Wenn ich es richtig verstanden habe, wollte ich die Ausführung bis 15:00 Uhr verschieben. Wenn ich jedoch topden Befehl sofort starte, sehe ich bereits Tests.o, die CPU-Zeit verbrauchen.

Da ich mehrere Tests mit freigegebenen Ressourcen starten muss, frage ich mich, wie "at" richtig verwendet werden kann.

Was mache ich falsch?

7
Diese Syntax (mit Ausnahme von "&", die nicht benötigt wird) wäre richtig, wenn "./tests.o" die Befehle generiert, die um 15:00 Uhr ausgeführt werden sollen. Kamil Maciorowski vor 5 Jahren 1

1 Antwort auf die Frage

10
AFH

atliest Befehle von der Standardeingabe. Was Sie tun, ist, ./tests.odie Ausgabestrings auszuführen und als Befehle für atden Zeitplan einzugeben. Es besteht auch keine Notwendigkeit für das Nachlaufen &, da es atsofort zurückkehrt.

Was Sie brauchen, ist:

echo ./tests.o | at 15:00 

oder:

at 15:00 <<< ./tests.o 

Sie müssen die Anführungszeichen verwenden, wenn der geplante Befehl die Umleitung oder andere Shell-Funktionen verwenden soll, z.

at 15:00 <<< './tests.o > tests.log' 
Danke, jetzt sehe ich, was ich falsch gemacht habe. @KamilMaciorowski Danke für deine Klarstellung. Mick Hardins vor 5 Jahren 0
@ KamilMaciorowski - Ich kreuze mich oft mit anderen Antworten und Kommentaren, da ich oft merke, dass es Dinge gibt, die ich noch einmal überprüfen sollte, während ich meine Antwort schreibe. Ich kann mich nicht immer daran erinnern, bevor ich poste. Es tut mir leid, dass ich dich an der Post angeschlagen habe. AFH vor 5 Jahren 0
Ein Here-Dokument ist eine weitere praktische Möglichkeit, um mit Shell-Metazeichen im Befehl umzugehen. Barmar vor 5 Jahren 0
@Barmar - Ich habe eine Here-Zeichenfolge in meiner Antwort verwendet, und dies war die richtige Antwort auf das in der Frage aufgeworfene Problem, aber ein Here-Dokument wäre natürlich angebracht, wenn mehr als ein Befehl gleichzeitig eingeplant werden sollte. Ich würde es nicht für einen einzelnen Befehl verwenden, um ein Zitat zu vermeiden. AFH vor 5 Jahren 0
Ich kritisiere nicht, ich erwähne nur eine Alternative, die etwas besser verallgemeinert. Barmar vor 5 Jahren 0
@ Barmar - Das habe ich erkannt, und ich habe versucht, Ihren Kommentar zu qualifizieren, indem er veranschaulicht, wo er relevanter ist. AFH vor 5 Jahren 0