Linux-Befehl > output.txt mit Verzögerung

Linux-Befehl > output.txt mit Verzögerung

Mein Problem besteht darin, dass mein Skript beim Ausführen über den folgenden Befehl hinaus fortgesetzt wird:

top -b > output.txt

Die Daten auf dem Computer sind ziemlich groß und daher dauert es einige Zeit, den vollständigen Stapel der CPU-Statistiken aus der topAusgabe abzurufen. Einige werden sofort ausgegeben und es dauert eine Weile, bis der Rest verfügbar ist. (Ich habe dies überprüft, indem ich einfach den Befehl top im Terminal ausgeführt habe.)

Ich muss warten, bis alle CPU-Statistiken usw. abgerufen wurden (sagen wir 20 Sekunden), dann topnach 20 Sekunden die Ausgabe erfassen und in output.txt ausgeben.

Ich weiß, dass der Ruhezustand für Verzögerungen verwendet wird, aber in diesem Fall scheint er irgendwo speziell erforderlich zu sein.

Antwort1

Ich bezweifle sehr, dass eine Maschine aus diesem Jahrtausend 20 Sekunden braucht, um eine einzige topTabelle zu generieren. Wahrscheinlicher ist, dass das Problem darin liegt, dass Sie angewiesen haben, topdie Ausgabe in Intervallen zu drucken .für immer, und die Ausgabe wird aufgrund der Pufferung nicht sofort geschrieben. Versuchen Sie es top -b -n1 > output.txtstattdessen mit:

Antwort2

Versuchen Sie, den waitBefehl zu verwenden.

So was:

top -bn 1 > output.txt & wait

Es sollte gewartet werden, bis der Vorgang abgeschlossen ist, bevor fortgefahren wird.

verwandte Informationen