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

[复制链接]
查看11 | 回复9 | 2021-12-13 21:56:40 | 显示全部楼层 |阅读模式
虽然看不懂,不过贵在贴够长
回复

使用道具 举报

千问 | 2021-12-13 21:56:40 | 显示全部楼层
看不懂的表示路过~~~~~~~~
回复

使用道具 举报

千问 | 2021-12-13 21:56:40 | 显示全部楼层
最好不要用于监控有同名子进程的程序,侦测的值会比实际的值大~~~#!/bin/sh
PROCESS_NAME=$1
CPU_MAX_USERATE=$2
MEM_MAX=$3
#MEM_MAX_USERATE=$3
CYCLE=$4
MAX_EXCEED_SET_NUMBER=$5
MAX_RESTART_NUMBER=$6
CPU_MAX_USERATE_I=0
MEM_MAX_USERATE_I=0
MEM_MAX_I=0
MAX_RESTART_NUMBER_I=0
while true; do
MEM_USERATE=`ps -C $PROCESS_NAME -o %mem | awk 'BEGIN{a=0.0;}/[0-9]/{a+=$1;}END{print a;}'`
CPU_USERATE=`ps -C $PROCESS_NAME -o %cpu | awk 'BEGIN{a=0.0;}/[0-9]/{a+=$1;}END{print a;}'`
MEM=`ps -C $PROCESS_NAME -o rss | awk 'BEGIN{a=0.0;}/[0-9]/{a+=$1;}END{print a;}'`
((MEM=MEM/1024))
if (echo $MEM 0.1 $MAX_RESTART_NUMBER_I | awk '!(($1 >= $2) && ($3 >= 1)){exit 1}') then

MAX_RESTART_NUMBER_I=0

#echo $(date) $PROCESS_NAME' already strat' >> /log/$PROCESS_NAME.log
fi
if (echo $CPU_USERATE $MEM_USERATE $MEM | awk '!(($1 == 0) || ($2 == 0) || ($3 == 0)){exit 1}') then

# Program is not start or already shut down

# restart or start code

echo 'restart '$PROCESS_NAME

/sbin/service $PROCESS_NAME restart

#echo $(date) $PROCESS_NAME' restart' >> /log/$PROCESS_NAME.log

CPU_MAX_USERATE_I=0; MEM_MAX_USERATE_I=0; MEM_MAX_I=0;

((MAX_RESTART_NUMBER_I=MAX_RESTART_NUMBER_I+1))

sleep 10
fi
if (echo $CPU_USERATE $CPU_MAX_USERATE | awk '!($1 >= $2){exit 1}') then

((CPU_MAX_USERATE_I=CPU_MAX_USERATE_I+1))

echo 'CPU_MAX_USERATE_I='$CPU_MAX_USERATE_I 'CPU_USERATE='$CPU_USERATE
fi
# if (echo $MEM_USERATE $MEM_MAX_USERATE | awk '!($1 >= $2){exit 1}') then
#
((MEM_MAX_USERATE_I=MEM_MAX_USERATE_I+1))
#
echo 'MEM_MAX_USERATE_I='$MEM_MAX_USERATE_I 'MEM_USERATE='$MEM_USERATE
# fi
if (echo $MEM $MEM_MAX | awk '!($1 >= $2){exit 1}') then

((MEM_MAX_I=MEM_MAX_I+1))

echo 'MEM_MAX_I='$MEM_MAX_I 'MEM='$MEM'MB'
fi
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

echo 'restart '$PROCESS_NAME

/sbin/service $PROCESS_NAME restart

#echo $(date) $PROCESS_NAME' restart' >> /log/$PROCESS_NAME.log

CPU_MAX_USERATE_I=0; MEM_MAX_USERATE_I=0; MEM_MAX_I=0;

((MAX_RESTART_NUMBER_I=MAX_RESTART_NUMBER_I+1))

sleep 10
fi
if (echo $MAX_RESTART_NUMBER_I $MAX_RESTART_NUMBER | awk '!($1 >= $2){exit 1}') then

# Send mail code

#echo $(date) $PROCESS_NAME' gua le!!!' | /usr/sbin/sendmail -v your @xxx.com > /dev/null

#echo $(date) $PROCESS_NAME' gua le!!!' >> /log/$PROCESS_NAME.log

break 1
fi
sleep $CYCLE
done
exit
# ./test.sh lighttpd 30 900 5 5 5
# ./test.sh 进程名 最大使用CPU百分比 最大使用内存数(MB) 侦测周期(秒) 超过设置多少个周期后重起服务 尝试重起服务失败多少次后发邮件复制代码监控评分 参与人数 9[/td]威望 +149[/td][td]收起理由[/td]

dakai + 9很给力!

fhs + 20技术贴加分

fake + 10很给力!

一步一杀 + 20感谢分享!

lxfy + 20原创技术帖一律加分查看全部评分
回复

使用道具 举报

千问 | 2021-12-13 21:56:40 | 显示全部楼层
支持
回复

使用道具 举报

千问 | 2021-12-13 21:56:40 | 显示全部楼层
慢慢看
回复

使用道具 举报

千问 | 2021-12-13 21:56:40 | 显示全部楼层


楼主不可妄自菲薄,只要是技术贴,大家都支持你
回复

使用道具 举报

千问 | 2021-12-13 21:56:40 | 显示全部楼层


不懂 顶字多
回复

使用道具 举报

千问 | 2021-12-13 21:56:40 | 显示全部楼层
哪位老大测试下,看看好用不???
回复

使用道具 举报

千问 | 2021-12-13 21:56:40 | 显示全部楼层
技术贴,一定要支持。
回复

使用道具 举报

千问 | 2021-12-13 21:56:40 | 显示全部楼层


赞一个
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行