全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
1#
发表于 2011-12-27 22:27:31 | 只看该作者
虽然看不懂,不过贵在贴够长
2#
发表于 2011-12-27 22:27:21 | 只看该作者
看不懂的表示路过~~~~~~~~
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 原创技术帖一律加分

查看全部评分

4#
发表于 2011-12-27 22:26:45 | 只看该作者
支持
5#
发表于 2011-12-27 22:37:45 | 只看该作者
慢慢看
6#
发表于 2011-12-27 22:38:15 | 只看该作者
楼主不可妄自菲薄,只要是技术贴,大家都支持你
7#
发表于 2011-12-27 22:38:42 | 只看该作者
不懂 顶字多
8#
 楼主| 发表于 2011-12-27 22:39:10 | 只看该作者
哪位老大测试下,看看好用不???
9#
发表于 2011-12-27 22:41:00 | 只看该作者
技术贴,一定要支持。
10#
发表于 2011-12-28 00:43:52 | 只看该作者

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

本版积分规则

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

GMT+8, 2025-11-14 02:52 , Processed in 0.084732 second(s), 16 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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