Wie erfasse ich die Ausgabe eines Top-Befehls in einer Datei unter Linux?
Ich möchte die Ausgabe eines bestimmten "top" -Befehls in eine Datei schreiben. Ich habe ein bisschen gegoogelt und herausgefunden, dass dies mit dem folgenden Befehl möglich ist.
top -n 10 -b > top-output.txt
Dabei gibt -n die Anzahl der Iterationen an und -b den Stapelmodus. Dies funktioniert sehr gut, wenn man die 10 Iterationen oben lässt. Aber wenn ich die Ausführung des Befehls mit einem Strg-C unterbreche, scheint die Ausgabedatei leer zu sein.
Ich werde nicht die Anzahl der Iterationen vor Hand wissen, so muss ich es manuell brechen. Wie kann ich die Ausgabe von top in einer Datei erfassen, ohne Iterationen anzugeben?
Der Befehl, den ich genau zu verwenden versuche, ist
top -b | grep init > top-output.txt
und brechen Sie es, wann immer ich will. Aber es funktioniert nicht.
BEARBEITEN: Um der Frage mehr Kontext zu geben, habe ich einen Java-Code, der ein Tool mit einer Eingabedatei aufruft. Wie im Tool nimmt eine Datei als Eingabe und läuft für einige Zeit, nimmt dann die nächste Datei und so weiter. Ich habe einen Satz von 100.000 Dateien, die dem Tool zugeführt werden müssen. Jetzt versuche ich, dieses spezielle Tool zu überwachen (es läuft als Prozess unter Linux). Ich kann nicht alle 'top'-Daten als Datei erfassen, da diese mit unerwünschten Daten zu umfangreich wären. Wie kann ich die Systemstatistiken dieses Prozesses erfassen und mit top in eine Datei schreiben?