Linux shell脚本实现CPU预警
更新时间:2015年03月29日 14:58:25 投稿:hebedich
这篇文章主要介绍了Linux shell脚本实现CPU预警的方法,并附上代码以及用法,有需要的小伙伴可以参考下。
脚本之家 / 编程助手:解决程序员“几乎”所有问题!
脚本之家官方知识库 → 点击立即使用
如果CPU占用率持续达到80以上则调用打印java线程占用率堆栈的脚本,见https://github.com/oldratlee/useful-shells/blob/master/show-busy-java-threads.sh,具体用法见他的github wiki!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | #!/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 |
以上所述就是本文给大家分享的全部内容了,希望大家能够喜欢。

微信公众号搜索 “ 脚本之家 ” ,选择关注
程序猿的那些事、送书等活动等着你
相关文章
一天一个shell命令 linux文本操作系列-tree命令详解
这篇文章主要介绍了一天一个shell命令 linux文本操作系列-tree命令详解,需要的朋友可以参考下2016-06-06
最新评论