编写top脚本kill掉占用CPU过高的进程

编写top脚本kill掉占用CPU过高的进程


一、命令

  1. top

-b 批处理模式,适合文本处理
-c 命令行,显示完整命令和程序名
-n 迭代次数,即捕获刷新次数
-o 指定排序的列,+或-表示降序或升序
-p 指定进程ID

  1. grep

-E 正则表达式,‘|’ 表示或

  1. awk

$0 完整行
$n 第n列

  1. read

读入数据到变量

  1. kill

杀掉进程

二、shell脚本

# 1. MyApp|YourApp|OtherApp 表示监控的进程名列表
# 2. $7>=99.0 表示第7列的值大于99%,top的列不一定相同,此处第7列为CPU占用率
# 3. while read procid 读入到变量procid
#!/bin/bash
while true
do
    sleep 10
    # MyApp
    top -b -c -n 1 -o +%CPU | grep -E 'MyApp|YourApp|OtherApp' | awk '{if($7>=99.0) print $1}' | while read procid
    do
        echo $procid;
        sleep 20
        top -b -c -p $procid -n 1 -o +%CPU | grep -E 'MyApp|YourApp|OtherApp' | awk '{if($7>=99.0) print $1}' | while read killpid
        do
            echo kill process  $killpid
            kill -9 $killpid
        done
    done
done

三、总结

grep 、awk和read命令可以结合其它命令实现很多系统问题的处理,简单了解一下帮助很大。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值