如何在无权限使用free -m和prtconf的情况下获取SUN SPARC远程服务器的当前空闲内存实际值
如何在无权限使用free -m和prtconf的情况下获取SUN SPARC远程服务器的当前空闲内存实际值
嘿,我懂你遇到的困扰了——用vmstat 2的时候,直接跑vmstat| awk '{print $5}'拿到的是系统启动以来的平均空闲内存,根本不是你要的实时当前值对吧?
其实vmstat的输出里有个小细节:第一行数据是系统从启动到现在的汇总统计值,后面每一行才是你设定采样间隔(这里是2秒)的实时数据。所以你只需要把前两行(表头和汇总行)过滤掉,取后面行的free列就可以拿到当前实际空闲内存了。
给你几个实用的命令方案:
如果你只需要一次当前的实际空闲内存数值,可以用这个:
vmstat 1 2 | awk 'NR==3 {print $5}'解释下:
vmstat 1 2表示每隔1秒采样一次,总共采样2次。第一次采样输出的是历史汇总值(对应输出的第二行),第二次就是实时当前值(第三行),用NR==3精准取第三行的第5列,就是你要的当前空闲内存啦。要是想持续监控实时空闲内存,跳过无用的汇总行,可以用:
vmstat 2 | awk 'NR>2 {print $5}'这里
NR>2会直接跳过前两行(表头和汇总统计行),之后每2秒输出一次当前的空闲内存数值。
另外补充个小技巧:vmstat输出的free列单位是字节,要是想换算成更直观的MB,可以在awk里加个除法运算:
vmstat 1 2 | awk 'NR==3 {print $5/1024/1024 " MB"}'
这样输出的就是以MB为单位的当前空闲内存了。
备注:内容来源于stack exchange,提问作者mostafa elmadany
相关产品推荐
相关产品推荐

