Ein Liner zur Anzeige der CPU-, RAM- und Festplattenauslastung

15

Ich habe einige Posts gesehen, die dasselbe in Bezug auf die Verwendung wünschen, aber die Antworten beziehen sich IMMER auf die Installation eines Tools von Drittanbietern.

Ich möchte nichts installieren.

Irgendwelche Liner? Folgendes wäre eine schöne Ausgabe:

CPU 11% RAM 20% HDD 85%
Karl Morrison
quelle
Ist die Festplattennutzung der Prozentsatz, wie voll sie ist oder wie beschäftigt sie ist?
Byte Commander
@ ByteCommander Beide? :) Im Ernst, die Kapazität aber. Wenn beides schön wäre.
Karl Morrison
Seufz .......: - /
Byte Commander
@ ByteCommander Mit Kapazität meine ich "wie voll es ist", wenn ich nicht klar war :)
Karl Morrison

Antworten:

28

Sie können dies verwenden

echo "CPU `LC_ALL=C top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1}'`% RAM `free -m | awk '/Mem:/ { printf("%3.1f%%", $3/$2*100) }'` HDD `df -h / | awk '/\// {print $(NF-1)}'`"

Die Ausgabe ist

CPU 7.4% RAM 33.9% HDD 94%
MKay
quelle
2
Der HD-Teil wird saugen, wenn Sie viele Partitionen haben.
Coteyr
1
df -h /Ein Teil der Befehlszeile zeigt die Statistiken zur /Partition an. Sie können den df -hBefehl wiederholen und /durch den zu überwachenden Einhängepunkt ersetzen .
MKay
1
Funktioniert bei mir nicht Die CPU ist immer 91%, ich habe keine Ahnung, woher das kommt. // Und RAM enthält Puffer und Cache, sodass es so aussieht, als wäre es erschöpft. Ich benutze 97,8% RAM, aber es sind immer noch 67,5% frei.
Oskar Skog
2
@OskarSkog Dein topist in Ordnung. Die CPU-Auslastung kann zum aktuellen Zeitpunkt nicht gemessen werden, sondern muss über einen kurzen Zeitraum gemessen werden. Wenn topdie erste Iteration ausgeführt wird, wird die durchschnittliche Nutzung seit dem letzten Neustart angezeigt. Beginnend mit der zweiten Iteration wird die tatsächliche aktuelle Verwendung seit der vorherigen Iteration angezeigt. Und wenn Sie Probleme mit der Lokalisierung haben, können Sie LC_ALL=Cvor den Befehl setzen, um die englische Standardlokalisierung zu verwenden (Zahlenformate usw., keine Sprache).
Byte Commander
2
@MKay: Sie können ersetzen möchten top -bn1 | grep "Cpu(s)"mit top -bn2 | grep "Cpu(s)" | tail -n1. Ersteres zeigt einen langfristigen Durchschnitt, wie von Byte Commander hervorgehoben.
Oskar Skog
7

Für die CPU-Auslastung (durchschnittlich (user+system)/(user+system+idle)über 0,1 Sekunden):

(grep 'cpu ' /proc/stat;sleep 0.1;grep 'cpu ' /proc/stat)|awk -v RS="" '{print "CPU "($13-$2+$15-$4)*100/($13-$2+$15-$4+$16-$5)"%"}'

Für die RAM-Nutzung ( (total-available)/total):

awk '/MemTotal/{t=$2}/MemAvailable/{a=$2}END{print 100-100*a/t"%"}' /proc/meminfo

Für die Verwendung auf der Festplatte (nur von dem als /) bereitgestellten Volume :

df | awk '/ \/$/{print "HDD "$5}'
Byte Commander
quelle
Interessanterweise steht weniger Speicher zur Verfügung als `free -m | Kopf -n3 | tail -n1 'meldet sich als freier Speicher.
Oskar Skog
@OskarSkog Können Sie Ihre Ausgabe dieses Befehls teilen? Für mich wird einfach die Swap total / used / free Zeile gedruckt, was hier nicht relevant ist. Vielleicht haben Sie etwas anderes gemeint, oder Ihr freeBefehl verwendet immer noch das alte Ausgabeformat mit separaten - / + Puffern / Cache-Zeilen ...
Byte Commander
Mein kostenloses verwendet das alte Format: oskog97.com/sshin/free-output.png Was hat sich geändert?
Oskar Skog
3
@OskarSkog Die Zeile "- / + Puffer / Cache" wurde entfernt und jetzt gibt es stattdessen eine zusätzliche Spalte "verfügbar" in der Zeile "Mem". Von man free: " Schätzung, wie viel Speicher zum Starten neuer Anwendungen ohne Austausch verfügbar ist. Im Gegensatz zu den vom Cache oder den freien Feldern bereitgestellten Daten berücksichtigt dieses Feld den Seitencache und auch, dass nicht alle wiedergewinnbaren Speicherplatten aufgrund von Elementen zurückgefordert werden in Verwendung MemAvailable in / proc / meminfo, verfügbar auf Kernel 3.14, emuliert auf Kernel 2.6.27+, ansonsten das gleiche wie kostenlos) "
Byte Commander