当前位置: > shell编程 >

多cpu 情况下,对每个cpu使用情况的监控脚本

时间:2015-01-17 17:35来源:linux.it.net.cn 作者:IT
  1. !/bin/sh
  2.  
  3. DATE=`date +%Y%m%d%H`
  4. DIR="/root/"
  5. MAILX=/usr/bin/mailx
  6. NOTIFY="174915592@qq.com"
  7. FROM="*****@****.com"
  8.  
  9. cd $DIR
  10. rm out.`date -d -1day +%Y%m%d`*
  11. rm out.$DATE
  12. rm report_cpu
  13.  
  14. awk '$0 ~/cpu/' /proc/stat | while read line
  15. do
  16. echo "$line" | awk '{total=$2+$3+$4+$5+$6+$7+$8;free=$5; print$1" Free "free/total*100"%", "Used " (total-free)/total*100"%"}'>>out.$DATE
  17.  
  18. done
  19.  
  20. while read line
  21. do
  22. cpu_usage=`echo $line | awk '{print $5}' |sed 's/\%$//g'`
  23. #cpu_usage=`echo $line | awk '{print $5}'`
  24. echo $cpu_usage
  25. flag=`expr $cpu_usage \> 0.4`
  26.  
  27. if [ "$flag" == "1" ] ; then
  28. cpu=`echo $line|awk '{print $1}'`
  29. usage=`echo $line|awk '{print $5}'`
  30. echo "the $cpu used $usage">>report_cpu
  31.  
  32. fi
  33. done <out.$DATE
  34.  
  35. echo "please check below processes :" >>report_cpu
  36. ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head >>report_cpu
  37.  
  38.  
  39.  
  40. $MAILX -s "the cpu of $hostname used too much , please check it" $NOTIFY<report_cpu



(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容