Libyano Asked: 2009-10-30 05:40:17 +0800 CST2009-10-30 05:40:17 +0800 CST 2009-10-30 05:40:17 +0800 CST 仅显示内存使用情况 772 我有一个简单的问题。我如何自定义 free 或 vmstat 或 top 命令的显示以仅显示内存使用情况,因为我希望结果通过 MRTG 绘制它。 linux 3 个回答 Voted womble 2009-10-30T05:56:58+08:002009-10-30T05:56:58+08:00 /proc/meminfo包含所有各种内存统计信息,您可以从那里获取值并随心所欲地操作。 Best Answer David Spillett 2009-10-30T06:12:31+08:002009-10-30T06:12:31+08:00 您可以/proc/meminfo通过 grep 的内容来获取您想要的行。例如: swann:/home/dspillett# grep MemTotal /proc/meminfo MemTotal: 6099676 kB swann:/home/dspillett# grep ^Cached /proc/meminfo Cached: 5418912 kB (查找“cached”的命令中的 ^grep表示仅在行首匹配,因此它也不会找到 SwapCached 值的行) 或者,如果您一次想要多行,请使用扩展匹配选项,以便可以使用“或”运算符: 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 "[A-Z][a-z]: " 6099676 swann:/home/dspillett# egrep '^MemTotal:|^MemFree:|^Buffers:|^Cached:' /proc/meminfo | tr -d "[A-Z][a-z]: " 6099676 182808 75488 5276000 还有一小堆其他标准文本处理程序(cut, paste, sed, awk, xargs...),您可以通过管道将结果转换为不同的格式。如果您在问题中提供您需要的格式,如果您不只是在寻找单个数值,在这种情况下,上面将做您想要的,我们可以告诉您通过哪些过滤器传递信息以获得所需的结果。我自己不使用 MRTG,所以我只能猜测它需要的输入格式。 ktower 2009-10-30T06:07:09+08:002009-10-30T06:07:09+08:00 严格来说,这并不是对您问题的回答,但如果您有 /proc 文件系统,您也许可以从 /proc/meminfo 中找到您感兴趣的信息。
/proc/meminfo
包含所有各种内存统计信息,您可以从那里获取值并随心所欲地操作。您可以
/proc/meminfo
通过 grep 的内容来获取您想要的行。例如:(查找“cached”的命令中的 ^
grep
表示仅在行首匹配,因此它也不会找到 SwapCached 值的行)或者,如果您一次想要多行,请使用扩展匹配选项,以便可以使用“或”运算符:
您可以使用
tr
仅返回单个项目的数值:还有一小堆其他标准文本处理程序(
cut
,paste
,sed
,awk
,xargs
...),您可以通过管道将结果转换为不同的格式。如果您在问题中提供您需要的格式,如果您不只是在寻找单个数值,在这种情况下,上面将做您想要的,我们可以告诉您通过哪些过滤器传递信息以获得所需的结果。我自己不使用 MRTG,所以我只能猜测它需要的输入格式。严格来说,这并不是对您问题的回答,但如果您有 /proc 文件系统,您也许可以从 /proc/meminfo 中找到您感兴趣的信息。