如何在Linux command for percentage of memory that is free中扩展答案,以便我可以将总内存四舍五入到下一个1G边界?例如,
# free -h
total used free shared buff/cache available
Mem: 7.4G 2.0G 3.0G 150M 2.4G 5.0G
Swap: 0B 0B 0B
我希望“free -h | awk {...}”的值为4,因为总Mem = 7.4G,所以7.4 / 2 = 3 + 1 = 4.有意义吗?
答案 0 :(得分:3)
假设G中的所有内容,您需要:
free -h | awk 'NR==2{print(int(substr($2,1,length($2)-1)/2+.5))}'
<强>解释强>
要打印第二行,您需要
free -h | awk 'NR==2{print}'
要打印第二行的第二个字段,您需要
free -h | awk 'NR==2{print($2)}' # prints 7.7G
要删除最终的G,你需要从第1个字符开始并包含与字符串一样多的字符的子字符串,减去1。
free -h | awk 'NR==2{print(substr($2,1,length($2)-1))}' # prints 7.7
要获得一半,你需要
free -h | awk 'NR==2{print(substr($2,1,length($2)-1)/2)}' # prints 3.85
要舍入到最接近的整数,您需要添加0.5并截断小数部分(由int
函数完成)
free -h | awk 'NR==2{print(int(substr($2,1,length($2)-1)/2+.5))}' # prints 4
答案 1 :(得分:0)
试试这个:
awk '$1=="MemTotal:"{t=$2}END{printf("%.0f GB\n", t/2/1024/1024)}' /proc/meminfo