微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用`free`和`awk`计算百分比自由交换空间

我试图计算可用交换空间的百分比。 使用这样的东西:

free | grep 'Swap' | awk '{t = $2; f = $4; print ($f/$t)}'

但是awk正在抛出:

awk: program limit exceeded: maximum number of fields size=32767

我不明白为什么,我的程序很简单,有可能我有一个奇怪的范围错误

如何使用awk在文件中写入一个文件(); 并在之后添加一个printline; 打印find的string?

复制每个目录中的png,如果png> 600×600?

不考虑缺失值的多个文件的平均值

使用RS和RT在Awk命令中匹配多个string

replace字符的每一个出现,除非它是在一个模式中

Linux shell脚本awk命令打开的文件太多了

添加文本到一行的中间

如何在ksh中反转string

如何使用sed或awk在单独的文件中格式化模式

如何通过ssh命令行来远程命令的引号

试试这个:

free | grep 'Swap' | awk '{t = $2; f = $4; print (f/t)}'

在你的代码中,你试图打印$ f和$ t,分别是$ FreeMemory和$ TotalMemory。 所以我想你总共有4gig的内存,这个数字大约是400000美元,比awk在标准配置中使用的字段总数还要多一点。 除了使用meminfo的简单尝试之外,还可以尝试打印指向变量的f / t,然后获得答案。

请注意,使用/proc/meminfo的SwapFree行来读取信息可能更容易/更强大。

就像是:

$ grep SwapFree /proc/meminfo | awk '{print $2}'

你不需要变量。 你可以使用普通的

awk '{ print $4/$2 }'

从/ proc / meminfo读取它:

lennart@trololol:~$ grep SwapFree /proc/meminfo | awk '{print $2}' 0

我意识到问题是关于使用“自由”和“awk”,但是如果你有SAR运行,那么这会给你最近记录的百分比值:

sar -S|tail -2|head -1|awk '{print $5}'

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐