Shell统计指定进程的cpu信息

代码

#!/bin/bash
interval=60
while :
do
    time=`date +'%H:%M:%S'`
    top=$(top -bn2 -d1 | grep leo | tail -n2)
    pid1=`echo $top | cut -d" " -f1`
    cpu1=`echo $top | cut -d" " -f9`
    pid2=`echo $top | cut -d" " -f13`
    cpu2=`echo $top | cut -d" " -f21`
    echo $time $cpu1 >> ~/$pid1.cpu
    echo $time $cpu2 >> ~/$pid2.cpu
    sleep $interval
done

注解

top -bn2 -d1

-b 以批处理模式启动top命令。如果不加这个参数,top将以交互模式运行。但是我试验了一下好像并不影响脚本的结果。
-n2 top命令会执行2次。第一次的输出结果不知道为什么总是不准确,所以这里执行2次。如果有知道原因的请不吝赐教,多谢。
-d1 每1秒执行一次。

grep leo

筛选文本中有“leo”的行,leo是我要找的进程名。

tail -n2

因为要查找的进程有2个,所以top会输出4行,这里只取后两行数据。

#第7行到第12行

使用cut命令取出pid和cpu,并保存到文件里。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值