2013-12-10 46 views
1

我想通過在Arch Linux上使用top來將CPU和內存統計記錄到文件中。我是在一個特定的過程只是有興趣,並得到想要的參數,如下圖所示:如何在每次迭代時從批量模式的Linux頂端獲得輸出?

top -b -n1 -p 310 | tail -fn 1 | awk '{printf "%s,%s,%s,%s\n",$1,$12,$9,$10}' 

這給了我一個輸出類似的命令行:

310,name,0.0,10.5 

所以,現在,如果我想運行此命令狀10次1秒的延遲,並輸出寫入到一個日誌文件我用:

top -b -n10 -p 310 -d 1 | tail -fn 1 | awk '{printf "%s,%s,%s,%s\n",$1,$12,$9,$10}' >> log.txt 

但是,不是打印我一行一行到日誌文件,我只得到了最後的輸出。所以我的日誌文件只包含1行,儘管top必須執行10次。

我在這裏做錯了什麼?

PS:打印到命令行,而不是到日誌文件只生產1線(最後輸出),以及...

回答

1

的問題是因爲你用tail命令的。嘗試這樣的事情

top -p 310-b -n2 -d 1 | grep -w 310 | awk '{printf "%s,%s,%s,%s\n",$1,$12,$9,$10}' 

我使用grep -w過濾行僅包含您有興趣

+0

感謝信息,其工作原理。正是我需要的! :) – Fidel90