zoukankan      html  css  js  c++  java
  • 使用gawk记录一段时间内,某个进程占用内存和CPU的情况

    很多时候,我们在后台测试程序的时候,都需要隔一段时间监控程序的内存和CPU占用情况,但是又不能经常盯着top命令的输出。 
    这时候就需要使用脚本来帮我们记录这些信息,方便我们监控了。

    废话不多说,直接上代码:

    ```shell
    #!/bin/bash
    
    FileName="res.txt"
    echo "%CPU	%MEM" > $FileName
    for (( i = 0; i < 10; i++ )) do
        output=`top -n 1 -p 1 > tmp`
        res=`gawk '{if (NR == 8) { printf "%d	%d", $10, $11 } }' tmp`
        echo "$res" >> $FileName
        sleep 1
    done
    ```
    

    解释一下top的两个参数,-n是让top命令只输出一次,如果不加上这个参数,top命令就会以交互式输出。-p是指定你要监控的程序的进程ID。

    再来是gawk的脚本。NR是当前行号(先将top命令的结果重定向到一个文件,然后用vim打举开,就知道想要的数据在第几行,第几个字段),1011分别代表当前行的第10个字段,和第11个字段,也就是CPU和MEM对应的数字

  • 相关阅读:
    UVa-129
    UVa-524
    有点迷茫
    北邮之行~
    UVa-253
    心累--期末考试成绩
    UVa-220 Othello
    UVa-201 Squares
    UVA-1589 Xiangqi
    UVa-213 Message Decoding
  • 原文地址:https://www.cnblogs.com/hbmlml/p/7219730.html
Copyright © 2011-2022 走看看