不少時候,咱們在後臺測試程序的時候,都須要隔一段時間監控程序的內存和CPU佔用狀況,可是又不能常常盯着top命令的輸出。
這時候就須要使用腳原本幫咱們記錄這些信息,方便咱們監控了。shell
廢話很少說,直接上代碼:vim
```shell #!/bin/bash FileName="res.txt" echo "%CPU\t%MEM" > $FileName for (( i = 0; i < 10; i++ )) do output=`top -n 1 -p 1 > tmp` res=`gawk '{if (NR == 8) { printf "%d\t%d", $10, $11 } }' tmp` echo "$res" >> $FileName sleep 1 done ```
解釋一下top的兩個參數,-n是讓top命令只輸出一次,若是不加上這個參數,top命令就會以交互式輸出。-p是指定你要監控的程序的進程ID。bash
再來是gawk的腳本。NR是當前行號(先將top命令的結果重定向到一個文件,而後用vim打舉開,就知道想要的數據在第幾行,第幾個字段),10,11分別表明當前行的第10個字段,和第11個字段,也就是CPU和MEM對應的數字測試