全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 3671|回复: 17
打印 上一主题 下一主题

[翻译] 我的监控脚本,写的垃圾请大家不要笑我~~~

[复制链接]
跳转到指定楼层
3#
 楼主| 发表于 2011-12-27 22:25:46 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
最好不要用于监控有同名子进程的程序,侦测的值会比实际的值大~~~
  1. #!/bin/sh

  2. PROCESS_NAME=$1
  3. CPU_MAX_USERATE=$2
  4. MEM_MAX=$3
  5. #MEM_MAX_USERATE=$3
  6. CYCLE=$4
  7. MAX_EXCEED_SET_NUMBER=$5
  8. MAX_RESTART_NUMBER=$6

  9. CPU_MAX_USERATE_I=0
  10. MEM_MAX_USERATE_I=0
  11. MEM_MAX_I=0
  12. MAX_RESTART_NUMBER_I=0
  13. while true; do
  14.         MEM_USERATE=`ps -C $PROCESS_NAME -o %mem | awk 'BEGIN{a=0.0;}/[0-9]/{a+=$1;}END{print a;}'`
  15.         CPU_USERATE=`ps -C $PROCESS_NAME -o %cpu | awk 'BEGIN{a=0.0;}/[0-9]/{a+=$1;}END{print a;}'`
  16.         MEM=`ps -C $PROCESS_NAME -o rss | awk 'BEGIN{a=0.0;}/[0-9]/{a+=$1;}END{print a;}'`
  17.         ((MEM=MEM/1024))
  18.         if (echo $MEM 0.1 $MAX_RESTART_NUMBER_I | awk '!(($1 >= $2) && ($3 >= 1)){exit 1}') then
  19.                 MAX_RESTART_NUMBER_I=0
  20.                 #echo $(date) $PROCESS_NAME' already strat' >> /log/$PROCESS_NAME.log
  21.         fi
  22.         if (echo $CPU_USERATE $MEM_USERATE $MEM | awk '!(($1 == 0) || ($2 == 0) || ($3 == 0)){exit 1}') then
  23.                 # Program is not start or already shut down
  24.                 # restart or start code
  25.                 echo 'restart '$PROCESS_NAME
  26.                 /sbin/service $PROCESS_NAME restart
  27.                 #echo $(date) $PROCESS_NAME' restart' >> /log/$PROCESS_NAME.log
  28.                 CPU_MAX_USERATE_I=0; MEM_MAX_USERATE_I=0; MEM_MAX_I=0;
  29.                 ((MAX_RESTART_NUMBER_I=MAX_RESTART_NUMBER_I+1))
  30.                 sleep 10
  31.         fi
  32.         if (echo $CPU_USERATE $CPU_MAX_USERATE | awk '!($1 >= $2){exit 1}') then
  33.                 ((CPU_MAX_USERATE_I=CPU_MAX_USERATE_I+1))
  34.                 echo 'CPU_MAX_USERATE_I='$CPU_MAX_USERATE_I 'CPU_USERATE='$CPU_USERATE
  35.         fi
  36. #       if (echo $MEM_USERATE $MEM_MAX_USERATE | awk '!($1 >= $2){exit 1}') then
  37. #               ((MEM_MAX_USERATE_I=MEM_MAX_USERATE_I+1))
  38. #                echo 'MEM_MAX_USERATE_I='$MEM_MAX_USERATE_I 'MEM_USERATE='$MEM_USERATE
  39. #       fi
  40.         if (echo $MEM $MEM_MAX | awk '!($1 >= $2){exit 1}') then
  41.                 ((MEM_MAX_I=MEM_MAX_I+1))
  42.                 echo 'MEM_MAX_I='$MEM_MAX_I 'MEM='$MEM'MB'
  43.         fi
  44.         if (echo $CPU_MAX_USERATE_I $MEM_MAX_USERATE_I $MEM_MAX_I $MAX_EXCEED_SET_NUMBER | awk '!(($1 >= $4) || ($2 >= $4) || ($3 >= $4)){exit 1}') then
  45.                 echo 'restart '$PROCESS_NAME
  46.                 /sbin/service $PROCESS_NAME restart
  47.                 #echo $(date) $PROCESS_NAME' restart' >> /log/$PROCESS_NAME.log
  48.                 CPU_MAX_USERATE_I=0; MEM_MAX_USERATE_I=0; MEM_MAX_I=0;
  49.                 ((MAX_RESTART_NUMBER_I=MAX_RESTART_NUMBER_I+1))
  50.                 sleep 10
  51.         fi
  52.         if (echo $MAX_RESTART_NUMBER_I $MAX_RESTART_NUMBER | awk '!($1 >= $2){exit 1}') then
  53.                 # Send mail code
  54.                 #echo $(date) $PROCESS_NAME' gua le!!!' | /usr/sbin/sendmail -v your @xxx.com > /dev/null
  55.                 #echo $(date) $PROCESS_NAME' gua le!!!' >> /log/$PROCESS_NAME.log
  56.                 break 1
  57.         fi
  58.         sleep $CYCLE
  59. done

  60. exit

  61. # ./test.sh lighttpd 30 900 5 5 5
  62. # ./test.sh 进程名 最大使用CPU百分比 最大使用内存数(MB) 侦测周期(秒) 超过设置多少个周期后重起服务 尝试重起服务失败多少次后发邮件
复制代码

评分

参与人数 9威望 +149 收起 理由
dakai + 9 很给力!
fhs + 20 技术贴加分
fake + 10 很给力!
一步一杀 + 20 感谢分享!
lxfy + 20 原创技术帖一律加分

查看全部评分

18#
发表于 2011-12-28 11:02:04 | 只看该作者
看不懂的依然在路过
17#
发表于 2011-12-28 10:59:27 | 只看该作者
都是技术类人才啊
16#
发表于 2011-12-28 10:58:46 | 只看该作者
不懂技术的路过
15#
发表于 2011-12-28 10:49:17 来自手机 | 只看该作者
mark
14#
发表于 2011-12-28 10:17:33 来自手机 | 只看该作者
我是来笑楼主的。
13#
发表于 2011-12-28 10:15:47 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
12#
发表于 2011-12-28 02:03:55 | 只看该作者
看不懂
11#
发表于 2011-12-28 00:46:53 | 只看该作者
比我强。。。。。我还不会写
10#
发表于 2011-12-28 00:43:52 | 只看该作者

赞一个
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2025-11-16 12:37 , Processed in 0.162408 second(s), 16 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表