码迷,mamicode.com
首页 > 系统相关 > 详细

Shell脚本整理

时间:2020-06-28 15:20:18      阅读:54      评论:0      收藏:0      [点我收藏+]

标签:col   tail   bsp   watch   关联数组   sleep   命令   purpose   头部   

监视并计算一小时内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\n",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使用情况,进程名作为数组索引。

Shell脚本整理

标签:col   tail   bsp   watch   关联数组   sleep   命令   purpose   头部   

原文地址:https://www.cnblogs.com/CodePastry/p/13202711.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!