仅显示内存使用情况

我有一个简单的问题。 我如何自定义显示free或vmstat或top命令来显示内存使用情况,因为我想要结果通过MRTG来绘制它。

你可以通过grep传递/proc/meminfo的内容来获得你想要的行。 例如:

 swann:/home/dspillett# grep MemTotal /proc/meminfo MemTotal: 6099676 kB swann:/home/dspillett# grep ^Cached /proc/meminfo Cached: 5418912 kB 

(寻找“caching”的命令中的^指示grep只匹配一行的开头,所以它也不会findSwapCached值的行)

或者,如果您想同时使用多条线路,请使用扩展匹配选项,以便使用“或”运算符:

 swann:/home/dspillett# egrep '^MemTotal:|^MemFree:|^Buffers:|^Cached:' /proc/meminfo MemTotal: 6099676 kB MemFree: 37596 kB Buffers: 73084 kB Cached: 5418912 kB 

您可以使用tr来返回单个项目的数值:

 swann:/home/dspillett# grep MemTotal /proc/meminfo | tr -d "[AZ][az]: " 6099676 swann:/home/dspillett# egrep '^MemTotal:|^MemFree:|^Buffers:|^Cached:' /proc/meminfo | tr -d "[AZ][az]: " 6099676 182808 75488 5276000 

还有一小堆其他的标准文本处理程序( cutpastesedawkxargs等),您可以通过pipe理结果来获得不同的格式输出。 如果你在你的问题中给出了你需要的格式,如果你不是在寻找一个单一的数字值,在这种情况下,上述将做你想要的,我们可以告诉你哪些filter来传递信息,以获得所需的结果。 我自己不使用MRTG,所以我只能猜测它需要的input格式。

/proc/meminfo包含所有的各种内存统计信息,你可以从那里获取值并操纵你的内心。

这并不是严格意义上的答案,但是如果你有一个/ proc文件系统,你可以从/ proc / meminfo中find你感兴趣的信息。