我知道您可以使用“w”之类的命令获取过去 1、5 和 15 分钟的服务器负载。但是,我想通过 cron 作业自动检索其中一个值,以便我可以将其记录在数据库中并进行一些分析并观察趋势。所以...我需要一个命令,它只输出服务器负载,这样它就可以简单地作为数字处理以供我的脚本使用。有人能给我一个命令来解析“w”之类的命令的输出并只返回服务器负载值吗?我希望有能返回 5 分钟和 15 分钟平均值的变体。谢谢!
答案1
每一个,1,5和15分钟的平均负载:
cut -f1 -d' ' /proc/loadavg
cut -f2 -d' ' /proc/loadavg
cut -f3 -d' ' /proc/loadavg
答案2
像这样:
CpuLoadAverage=`uptime | awk 'BEGIN { FS=" |, " } { print $11 }'`
echo $CpuLoadAverage
5 分钟和 15 分钟时,只需将 11 美元替换为 12 美元或 13 美元即可。
答案3
尝试这个:
uptime | perl -e 'while (<>) { m/average:\s(\d.\d+),\s(\d.\d+),\s(\d.\d+)/; print $1; }'
表示 1 分钟平均值,或分别$1
用$2
或替换$3
表示 5 分钟或 15 分钟平均值。