Linux-CPU进程占用信息脚本


Ax 列出1小时占用CPU最多的10个进程

a 编写脚本

#!/bin/bash

SECS=3600
UNIT_TIME=60

# SECS为监视的时间,单位是秒,上面以一小时为例
# UNIT_TIME为取样的时间间隔,上面以60秒为例

STEPS=$(( $SECS / $UNIT_TIME ))
echo Watching CPU usage... ;
for((i=0;i<STEPS;i++))
do
    ps -eocomm,pcpu | tail -n +2 >> /tmp/cpu_usage.$$
    sleep $UNIT_TIME
done

echo
echo CPU eaters :

cat /tmp/cpu_usage.$$ | \
awk '
{ process[$1]+=$2; }
END{
    for(i in process)
    {
        printf("%-20s %s\n",i, process[i]) ;
    }
}' | sort -nrk 2 | head
rm /tmp/cpu_usage.$$
# 删除临时的日志文件

b 执行结果

3600秒太难等了,我就把时间调整到10秒,有效果就行。

Bx 参考

[1] 《Linux Shell脚本攻略》第二版 Shantanu Tushar\Sarath Lakshman 著


文章作者: Enomothem
版权声明: 本博客所有文章除特别声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Enomothem !
  目录