Bellek kullanımını, Disk Kullanımını ve CPU Yükünü aşağıdaki biçimde görüntülemek istiyorum:
Memory Usage: 33/512MB (6%)
Disk usage: 4.2/20GB (23%)
CPU Load: 0.01
Bunu nasıl yaparım?
Bellek kullanımını, Disk Kullanımını ve CPU Yükünü aşağıdaki biçimde görüntülemek istiyorum:
Memory Usage: 33/512MB (6%)
Disk usage: 4.2/20GB (23%)
CPU Load: 0.01
Bunu nasıl yaparım?
Yanıtlar:
Bunu deneyin, Debian sistemim üzerinde çalışıyor. Ayrıntılar, işletim sisteminizin kullandığı bu araçların uygulanmasına bağlı olarak değişebilir:
#!/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)}'
Yukarıdakileri bir komut dosyası olarak kaydedip çalıştırırsanız, (sistemimden örnek) alırsınız:
$ ./foo.sh
Memory Usage: 4986/7994MB (62.37%)
Disk Usage: 23/68GB (35%)
CPU Load: 0.78
Yukarıdaki komut dosyasının /bölüm için disk kullanımı sağladığını unutmayın . Ne istediğini belirtmedin, bu yüzden peşinde olduğunu tahmin ediyorum.
free -m | awk 'NR==2{printf "Memory Usage: %s/%sMB (%.2f%%)\n", $3,$2,$3*100/$2 }'
Üstünü kontrol et .
Bunu okuyun, https://lwn.net/Articles/387202/
Görmek,

Uygulamalara göre disk / bellek / cpu yükünü görebilirsiniz:

Örneğin, disk kullanımı:

dizinde günlük /var/log/atop/olarak ikili biçim dosyalarında toplanan istatistikleri üstüne . Bir kılavuz sayfasını okuyabilirsiniz, yararlı bilgiler elde etmenin bir yolu olmalıdır.
Tam olarak kendi biçiminizde görüntülenecek bir komut yoktur, ancak aşağıdakiler, bir komut dosyası oluşturabilen temel değerlerden bazılarını sağlar, alternatif olarak / proc ve / sys'den değerleri okumak da mümkündür.
free - hızlı genel bakış
vmstat 1 sistem performansı i / o istatistiklerini gösterir
top dinamik
htop başa benzer
Solaris kullanıyorsanız, şuna bakın : showcpucount
Bu size kodunuzu nasıl yazacağınız hakkında bir fikir verecektir.
İşte CPU ve RAM kullanımı için benim kod:
### 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
Bellek kullanımını, Disk Kullanımını ve CPU Yükünü aşağıdakileri kullanarak görüntüleyebilmeniz gerekir:
(ps hax -o rss,user | awk '{a[$2]+=$1;}END{for(i in a)print i" "int(a[i]/1024+0.5);}' | sort -rnk2)