zoukankan      html  css  js  c++  java
  • Shell脚本整理

    监视并计算一小时内CPU使用情况

    #!/bin/bash
    #file name: pcpu_usage.sh
    #purpose: 计算1小时内进程的CPU占用情况
    
    #SECS为需要进行监视的总秒数
    #UNIT_TIME是取样的时间间隔,单位是秒
    SECS=3600
    UNIT_TIME=60
    
    STEPS=$(( $SECS / $UNIT_TIME ))
    
    echo "watching CPU usage...";
    
    for((i=0;i<STEPS;i++))
    do
      ps -eocomm,pcpu | tail -n +2 >> ./cpu_usage.$$
      sleep $UNIT_TIME
    done
    
    echo
    echo CPU eaters:
    
    cat ./cpu_usage.$$ | 
    awk '
    { process[$1]+=$2; }
    END{
        for(i in process)
        {
          printf("%-20s %s
    ",i,process[i]);
        }
    }' | sort -nrk 2 | head
    
    rm ./cpu_usage.$$
    • 输入源:ps -eo comm,pcpu。其中comm标识命令名(command name),pcpu表示CPU使用率(CPU usage in percent)。该命令输出所有进程名及CPU使用率;
    • 使用sleep 60来表示每次统计的迭代时间为60秒;
    • tail -n +2将 ps 输出中头部和COMMAND %CPU去掉;
    • cpu_usage.$$中$$表示当前脚本的进程ID;
    • 使用awk求出每个进程总的CPU使用情况,用一个关联数组统计CPU使用情况,进程名作为数组索引。
  • 相关阅读:
    DS02--线性表
    DS01--抽象数据类型
    C语言最后一次作业--总结报告
    C语言第十一次作业--函数嵌套调用
    你还有很多要学的东西
    Google Guice 系列教程 - 基础实践
    Eclim指令集
    maven入门案例
    从java调用groovy
    linux下安装Groovy环境
  • 原文地址:https://www.cnblogs.com/CodePastry/p/13202711.html
Copyright © 2011-2022 走看看