初學shell試著計算內存空閒率。
首先要采集到內存使用信息,內存信息可以從這裡得到/proc/meminfo
[root@www ~]# cat /proc/meminfo |head -n10
MemTotal: 389364 kB
MemFree: 10824 kB
Buffers: 18096 kB
Cached: 245308 kB
SwapCached: 0 kB
Active: 183944 kB
Inactive: 171684 kB
HighTotal: 0 kB
HighFree: 0 kB
LowTotal: 389364 kB
[root@www ~]#
#########################################
[root@www ~]# cat /proc/meminfo |head -n1|cut -d " " -f8
389364
[root@www ~]# cat /proc/meminfo |head -n2|tail -n1|cut -d " " -f10
10452
通過cut可以得到內存總量和閒置內存數值。通過算數運算:閒置/總量=閒置率。通過老師的提醒,想著下面這種方法可以得到結果。沒想到執行後,結果為“0”
[root@www ~]# echo `cat /proc/meminfo |head -n2|tail -n1|cut -d " " -f11` / `cat /proc/meminfo |head -n1|cut -d " " -f8`|bc
0
比較郁悶呢!考慮了一下許是有效數字的問題。那麼怎麼改變有效數字呢??首先采用的辦法是閒置量X100後在和總量相除。
[root@www ~]# echo `cat /proc/meminfo |head -n2|tail -n1|cut -d " " -f11`*100 / `cat /proc/meminfo |head -n1|cut -d " " -f8`|bc
1
1就是1%吧。不論怎麼樣,大概實現預期目標。在高手眼中這就是垃圾啊!!
采集數據中發現,空閒內存變化比較大,列數也不固定。這方法真的很垃圾呢!
不過是第一次練習。不要給板磚哦!