it-swarm.com.de

Befehl zum Anzeigen der Speichernutzung, der Festplattennutzung und der CPU-Auslastung

Ich möchte die Speichernutzung, die Festplattenauslastung und die CPU-Auslastung im folgenden Format anzeigen:

Memory Usage: 33/512MB (6%)    
Disk usage: 4.2/20GB (23%) 
CPU Load: 0.01

Wie mache ich das?

17
Prem

Versuchen Sie dies, es funktioniert auf meinem Debian-System. Die Details können abhängig von der Implementierung dieser Tools variieren, die Ihr Betriebssystem verwendet:

#!/bin/sh
free -m | awk 'NR==2{printf "Memory Usage: %s/%sMB (%.2f%%)\n", $3,$2,$3*100/$2 }'
df -h | awk '$NF=="/"{printf "Disk Usage: %d/%dGB (%s)\n", $3,$2,$5}'
top -bn1 | grep load | awk '{printf "CPU Load: %.2f\n", $(NF-2)}' 

Wenn Sie das oben genannte als Skript speichern und ausführen, erhalten Sie (Beispiel von meinem System):

$ ./foo.sh 
Memory Usage: 4986/7994MB (62.37%)
Disk Usage: 23/68GB (35%)
CPU Load: 0.78

Beachten Sie, dass das obige Skript die Festplattennutzung für die Partition / Gibt. Sie haben nicht angegeben, was Sie wollten, also schätze ich, dass Sie danach suchen.

35
terdon

Überprüfen Sie auf .

Lesen Sie dies, https://lwn.net/Articles/387202/

Sehen, enter image description here

Sie können das Laden von Festplatte/Speicher/CPU durch Apps sehen:

enter image description here

Beispiel: Festplattennutzung:

enter image description here

auf gesammelten Statistiken im Verzeichnis /var/log/atop/ in Dateien im Binärformat pro Tag. Sie könnten eine Manpage lesen, es muss eine Möglichkeit geben, nützliche Informationen zu extrahieren.

5
user2496

Es gibt keinen Befehl, der genau in Ihrem speziellen Format angezeigt werden kann. Im Folgenden finden Sie jedoch einige der Basiswerte, um die herum ein Skript erstellt werden kann. Alternativ können Sie auch Werte aus/proc und/sys lesen.

free - Schnellübersicht

vmstat 1 zeigt die Systemleistungs-E/A-Statistiken an

top dynamisch

htop ähnlich wie oben

2
X Tian

Hier ist mein Code zum Abrufen der CPU und RAM Nutzung:

### 1. get total average CPU usage for the past minute
avg_cpu_use=$(uptime)
# a. split response
IFS=',' read -ra avg_cpu_use_arr <<< "$avg_cpu_use"
# b. find cpu usage
avg_cpu_use=""
for i in "${avg_cpu_use_arr[@]}"; do :
    if [[ $i == *"load average"* ]]; then
        avg_cpu_use=$i
        break       
    fi
done
# c. create response
avg_cpu_use=$(echo ${avg_cpu_use:16})   # Remove "  load average: "
if [[ -z "${avg_cpu_use// }" ]]; then
    avg_cpu_use="CPU: N/A%%"
    exit -1
else
    avg_cpu_use="CPU: ${avg_cpu_use}%%"
fi

### 2. get RAM usage
ram_use=$(free -m)
# a. split response by new lines
IFS=$'\n' read -rd '' -a ram_use_arr <<< "$ram_use"
# b. remove extra spaces
ram_use="${ram_use_arr[1]}"
ram_use=$(echo "$ram_use" | tr -s " ")
# c. split response by spaces
IFS=' ' read -ra ram_use_arr <<< "$ram_use"
# d. get variables
total_ram="${ram_use_arr[1]}"
ram_use="${ram_use_arr[2]}"
# e. create response
ram_use="RAM: ${ram_use}/${total_ram} MB"

echo $avg_cpu_use
echo $ram_use
0
xinthose

Wenn Sie Solaris verwenden, überprüfen Sie Folgendes: showpucount

Auf diese Weise erhalten Sie eine Vorstellung davon, wie Sie Ihren Code schreiben.

0
vikkp

Ich denke, Sie brauchen Nagios-Hilfe, denn all diese Plugins/Skripte für Nagios sind bereits erstellt und Sie können sie ohne Nagios-Installation herunterladen und testen.

0
klerk