2013-08-30 23 views
3

我想创建一个脚本,每60秒钟运行一次该命令2小时。 还希望每次将输出保存到文件时将输出保存到新行。bash脚本可以每60秒捕获2小时的负载平均值

uptime | awk '{print $12}' | cut -d "," -f 1 

任何帮助将不胜感激。我有点生疏。

+1

使用'at'或'crontab',然后将'>/path/to/log.file'添加到代码的末尾。 – konsolebox

+0

不幸的是,如果服务器在线时间少于一天,awk'{print $ 12}'不能正常工作,因为格式不同。 '15:51:58最多8天,7:33,1个用户,平均负载:9.50,8.32,8.50'和'15:51:58最多23:45,1个用户,平均负载:0.01,0.15,1.45'在1天后,它在正常运行时间命令中有“x天”。只是想在这里发表评论,因为这是谷歌最重要的结果,不希望别人犯同样的错误。 – Tim

+0

您可以使用'cat/proc/loadavg'来代替正常运行时间,以获得更可靠的结果。 – Tim

回答

3

一个简单的循环应该为你工作。

for i in {1..120} 
do 
    uptime | awk '{print $12}' | cut -d "," -f 1 >> /tmp/outputfile 
    echo "number of times through: ${i}" 
    sleep 60 
done