获取linux内存使用率
内存使用率可以根据/proc/meminfo文件中得到
我要分析
MemTotal: 509232 kB
MemFree: 173300 kB
Buffers: 151296 kB
Cached: 137472 kB
这四项数据,于是用shell取得这四列值
total=`grep "MemTotal" /proc/meminfo | awk '{print $2}'`
free=`grep "MemFree" /proc/meminfo | awk '{print $2}'`
buffer=`grep "Buffers" /proc/meminfo | awk '{print $2}'`
cache=`grep "Cached" /proc/meminfo | awk '{print $2}'`
当我执行一个脚本把这四个数据插入数据库时,总是报错,于是打印
我需要插入的值
echo "rrdtool updsate $mem_file -template $TEMPLATE_STR N:$total:$free:$buffer:$cache"
rrdtool updsate mem.rrd -template total:free:buffer:cache N:509232:173268:151320:137508 0
怎么还带个零呢,左思右想,一句一句试吧,
当执行到
cache=`grep "Cached" /proc/meminfo | awk '{print $2}'`这句时才发现有2行,坑爹啊,没仔细看/proc/meminfo的结果,有两行啊
Cached: 137472 kB
SwapCached: 0 kB
修改命令为
cache=`grep "Cached" /proc/meminfo | awk '{print $2}' | head -1`
成功了!