Ich verwende derzeit die folgende Methode, um den Leerlaufwert der CPU-Auslastung aus dem obersten Befehl zu extrahieren und den Wert von 100 abzuziehen. Ist diese Methode korrekt und gibt es eine bessere Möglichkeit, dasselbe zu erreichen?
Außerdem ist meine Linux-VM eine abgespeckte Version und hat nur wenige grundlegende Tools wie top
. Die Installation anderer Tools ist keine Option, da auch der Paketmanager entfernt wurde.
CPU_IDLE="$(top -bn2 | grep -F '%Cpu' | tail -n 4 | gawk '{print $8 $9}' | tr -s '\n\:\,[:alpha:]' ' '| gawk '{print $2}'),"
Antwort1
Ja, Ihre Methode ist in Ordnung.
Aber Sie könntenmpstat
um weitere Details zu erhalten.
Es ist enthalten insysstatPaket, und wenn Sie es nicht installiert haben ...
Unter CentOS/RHEL:
sudo yum install sysstat
Unter Ubuntu / Debian:
sudo apt-get install sysstat
Verwenden Sie den folgenden Befehl, wenn Sie keine Berechtigung zum Installieren eines Pakets haben
grep 'cpu ' /proc/stat | awk '{usage=($2+$4)*100/($2+$4+$5)} END {print usage "%"}'