2013-08-30 24 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