Ich versuche, einen kleinen Befehl zu schreiben, der die Prozesse findet, die die meiste CPU-Leistung verbrauchen.
Zuerst benutze ich ps aux > file.txt
und dann cut -c 16-20 file.txt | sort -n | tail -5
.
Das Ergebnis ist folgendes:
1.0
2.7
8.
14.5
14.5
Meine Frage ist also, wie ich sowohl die %CPU
Verwendung als auch die anderen Felder zusammen ausgeben lassen kann.
bash
shell-script
sort
ps
Spyros Chiotakis
quelle
quelle
top
stattdessen verwenden?awk
. Wenn Sie danach bereit sind, Dinge "in die Produktion" zu verlagern, sollten Sie dentop
Batch-Modus verwenden, wenn er für Ihre Anforderungen geeignet ist.file.txt
indem Sieps aux|cut -c ...
Antworten:
Die richtige Antwort ist:
Für die Top 5:
So können Sie Spalten angeben, ohne die Sortierung zu beeinträchtigen.
Ex:
Anmerkung von 'ckujau':
--sort
wird vonps
from unterstütztprocps
, andere Implementierungen haben diese Option möglicherweise nicht.quelle
--sort
nur vonps
from unterstützt wirdprocps
, bei anderen Implementierungen ist diese Option möglicherweise nicht verfügbar.Sortieren Sie nach dem entsprechenden Feld (standardmäßig als Übergang von Leerzeichen zu Nicht-Leerzeichen definiert). In meinem Fall ist dies das dritte Feld:
quelle
ps
die--sort
Option hat.Ein Ärger mit der akzeptierten Lösung ist, dass die Überschriften für die verschiedenen Spalten in die Ausgabe einbezogen werden. Ein weiteres Problem ist , dass wenn Sie den Schalter verwenden ,
-x
umps
es wird die vollen Befehlszeilen für einige Programme bieten, die auf laufen können und ein Ärgernis in der Ausgabe werden.Beispielsweise
Ärgerliche Kommandozeilen
Besonders Chrome kann bei einer
ps
Ausgabe wie dieser ziemlich nervig sein !Überschriften in der Ausgabe
Sie können den Header in der 7. Zeile der Ausgabe sehen.
Alternativen
Die Überschriften loswerden
ps
bietet einen Schalter zum Deaktivieren der Anzeige dieser Spaltenüberschriften. Es ist ziemlich einfach zu bedienen, einfach den--no-heading
Schalter hinzufügen .Oder so:
Übernehmen Sie die Kontrolle über die angezeigten Spalten.
Dies kann schmerzhaft erscheinen, aber wenn Sie die Erfassung der
ps
Ausgabe per Skript ausführen, ist dies nicht allzu schlimm. Ein Befehl wie dieser ahmt die Ausgabe von nachps aux
, mit der Ausnahme, dass die längere Form derCOMMAND
Spalte durch eine kürzere Version ersetzt wird, die nur den Namen der ausführbaren Datei anzeigt.Wenn Sie das Ganze ohne die Spaltenüberschriften zusammenfassen, ist es viel einfacher, mit Skripten umzugehen.
Liste der höchsten bis niedrigsten% CPU-Prozesse:
Liste der niedrigsten bis höchsten% CPU-Prozesse:
quelle