• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Linux shell脚本实现CPU预警

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

如果CPU占用率持续达到80以上则调用打印java线程占用率堆栈的脚本,见https://github.com/oldratlee/useful-shells/blob/master/show-busy-java-threads.sh,具体用法见他的github wiki!

#!/bin/bash
#cpu idle percent
cpu_idle=`top -b -d 1 -n 2 | grep Cpu | awk 'NR>1{print $5}' | cut -f 1 -d "."`
 
if [ -d "/opt/scripts/log" ]
then
  cd /opt/scripts
else
  mkdir /opt/scripts/log
fi
 
count=0
condition=true
while condition
do
    if [ $cpu_idle -le 20 ]
    then
      pids=`top -b -d 1 -n 1 | grep java | awk '{if($9 > 80) print $1}'`
      for ((a = 1; a < 10; a++))
      do
       for pid in $pids
       doi
         #involve jdk existence check later
         date=`date +%Y%m%d%H%M`
         sh showstack.sh -c 30 -p $pid > log/stack_$pid_$date.log
         jstat -gcutil $pid > log/gc_$pid_$date.log
       done
      done
      for pid in $pids
      do
       date=`date +%Y%m%d%H%M`
       jmap -heap $pid > log/heap_$pid_$date.log
      done
      count++
      cpu_idle=`top -b -d 1 -n 2 | grep Cpu | awk 'NR>1{print $5}' | cut -f 1 -d "."`
      if [ $count -ge 3]
      then
       #send emaili
       #server ip address
       ip=`ifconfig eth0 | grep "inet addr" | cut -f 2 -d ":" | cut -f 1 -d " "`
       condition=false
       count=0
      fi
    else
      condition=false
      count=0
    fi
done

以上所述就是本文给大家分享的全部内容了,希望大家能够喜欢。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Linux shell实现每天定时备份mysql数据库发布时间:2022-02-11
下一篇:
shell脚本实现随机生成10个8位密码发布时间:2022-02-11
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap