初学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%吧。不论怎么样,大概实现预期目标。在高手眼中这就是垃圾啊!!
采集数据中发现,空闲内存变化比较大,列数也不固定。这方法真的很垃圾呢!
不过是第一次练习。不要给板砖哦!