【发布时间】:2014-07-09 19:52:05
【问题描述】:
我想以以下格式显示内存使用情况、磁盘使用情况和 CPU 负载:
Memory Usage: 33/512MB (6%)
Disk usage: 4.2/20GB (23%)
CPU Load: 0.01
所以我开始使用下面的脚本来执行此操作,但不知何故它给了我一个错误
#!/bin/bash
free -m | awk 'NR==2{printf "Memory Usage: %s/%sMB (%.2f%)\n", $3,$2,$3*100/$2 }'
df -h | awk '$NF=="/"{printf "Disk Usage: %d/%dGB (%s)\n", $3,$2,$5}'
top -bn1 | grep load | awk '{printf "CPU Load: %.2f\n", $(NF-2)}'
以下是我得到的错误 -
awk: run time error: not enough arguments passed to printf("Memory Usage: %s/%sMB (%.2f%)
")
FILENAME="-" FNR=2 NR=2
我正在运行 ubuntu 12.04。知道有什么问题吗?
更新:-
运行下面的 shell 脚本后 -
#!/bin/bash
free -m | awk 'NR==2{printf "Memory Usage: %s/%sMB (%.2f%%)\n", $3,$2,$3*100/$2 }'
df -h | awk '$NF=="/"{printf "Disk Usage: %d/%dGB (%s)\n", $3,$2,$5}'
top -bn1 | grep load | awk '{printf "CPU Load: %.2f\n", $(NF-2)}'
我的输出低于 -
Memory Usage: 128504/128896MB (99.70%)
Disk Usage: 3/48GB (8%)
CPU Load: 0.40
CPU 负载看起来正常吗? 0.40 是什么意思?我应该说 CPU 负载的高值是多少?
【问题讨论】:
-
使用
uptime而不是top来获得平均负载。 -
WRT cpu load 看看en.wikipedia.org/wiki/Load_%28computing%29 根据我的经验,我看到一些服务器负载 10-20 并且仍然响应,在其他情况下负载 3-5 挂起
-
+1,问题比答案包含更多有用的信息。