不少时候,咱们在后台测试程序的时候,都须要隔一段时间监控程序的内存和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对应的数字测试