मैं निम्नलिखित प्रारूप में मेमोरी उपयोग, डिस्क उपयोग और सीपीयू लोड प्रदर्शित करना चाहता हूं:
Memory Usage: 33/512MB (6%)
Disk usage: 4.2/20GB (23%)
CPU Load: 0.01
मैं उसको कैसे करू?
मैं निम्नलिखित प्रारूप में मेमोरी उपयोग, डिस्क उपयोग और सीपीयू लोड प्रदर्शित करना चाहता हूं:
Memory Usage: 33/512MB (6%)
Disk usage: 4.2/20GB (23%)
CPU Load: 0.01
मैं उसको कैसे करू?
जवाबों:
यह कोशिश करो, यह मेरे डेबियन सिस्टम पर काम करता है। आपके ओएस द्वारा उपयोग किए जाने वाले इन उपकरणों के कार्यान्वयन के आधार पर विवरण भिन्न हो सकते हैं:
#!/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)}'
यदि आप उपरोक्त को स्क्रिप्ट के रूप में सहेजते हैं और इसे चलाते हैं, तो आपको मिलेगा (मेरे सिस्टम से उदाहरण):
$ ./foo.sh
Memory Usage: 4986/7994MB (62.37%)
Disk Usage: 23/68GB (35%)
CPU Load: 0.78
ध्यान दें कि ऊपर दी गई स्क्रिप्ट /
विभाजन के लिए डिस्क उपयोग दे रही है । आपने निर्दिष्ट नहीं किया कि आप क्या चाहते हैं इसलिए मैं अनुमान लगा रहा हूं कि आप आखिर क्या हैं।
awk
github.com/rahulinux/scripts/blob/master/sys_info.sh के
free -m | awk 'NR==2{printf "Memory Usage: %s/%sMB (%.2f%%)\n", $3,$2,$3*100/$2 }'
ऊपर की जाँच करें ।
इसे पढ़ें, https://lwn.net/Articles/387202/
देख,
आप ऐप्स द्वारा डिस्क / मेमोरी / सीपीयू का लोड देख सकते हैं:
उदाहरण के लिए, डिस्क का उपयोग:
/var/log/atop/
प्रति दिन बाइनरी प्रारूप फ़ाइलों में निर्देशिका में आँकड़े एकत्र किए गए । आप एक आदमी पृष्ठ पढ़ सकते हैं, उपयोगी जानकारी निकालने का एक तरीका होना चाहिए।
आपके विशेष प्रारूप में वास्तव में प्रदर्शित करने के लिए कोई आदेश नहीं है, लेकिन निम्नलिखित कुछ आधार मान प्रदान करते हैं, जो कि एक स्क्रिप्ट का निर्माण कर सकते हैं, एक विकल्प के रूप में / proc / sys से मूल्यों को पढ़ना भी संभव है।
free
- त्वरित अवलोकन
vmstat 1
सिस्टम प्रदर्शन i / o आँकड़े दिखाता है
top
गतिशील
htop
शीर्ष के समान
यदि आप सोलारिस का उपयोग कर रहे हैं, तो इसे देखें: showcpucount
यह आपको अपने कोड लिखने के बारे में जाने का एक विचार देगा।
यहाँ सीपीयू और रैम उपयोग के लिए मेरा कोड है:
### 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
आपको मेमोरी उपयोग, डिस्क उपयोग और सीपीयू लोड को प्रदर्शित करने में सक्षम होना चाहिए:
(ps hax -o rss,user | awk '{a[$2]+=$1;}END{for(i in a)print i" "int(a[i]/1024+0.5);}' | sort -rnk2)