使用shell脚本监控httpd进程

需求:

1.每隔10s监控httpd的进程数,若进程数大于等于500,则自动重启Apache服务,并检测服务是否重启成功;

2.若未成功则需要再次启动,若重启5次依旧没有成功,则向管理员发送告警邮件(使用echo输出已发送即可),并退出检测;

3.如果启动成功,则等待1分钟后再次检测httpd进程数,若进程数正常,则恢复正常检测(10s一次),否则放弃重启并向管理员发送告警邮件,并退出检测。

[root@localhost ~]# vim httpd_check.sh
#!/bin/bash
check_mysql_process_number() {
let process_num=`mysql -uroot -p123456 -e"show processlist;"|wc -l`-2
echo "mysql目前连接数为${process_num}..."

if [ $process_num -gt 50 ];then
systemctl restart mysqld &> /dev/null
systemctl status mysqld &> /dev/null
if [ $? -ne 0 ];then
restart_num=1
while (($restart_num -le 5));do
systemctl restart mysqld &> /dev/null
systemctl status mysqld &> /dev/null
[ $? -eq ] && break
let restart_num++
done
fi

systemctl status mysqld &> /dev/null
[ $? -ne 0 ] && echo "mysql未正常重启,请及时检查!!!" && return 1

let process_num=`mysql -uroot -p123456 -e"show processlist;"|wc -l`-2
echo "重启后连接数为${process_num}..."
if [ $process_num -gt 50 ];then
echo "仍然大于50!!!"
return 1
else
echo "未超过50..."
return 0
fi

else
echo "未超过50..."
sleep 10
return 0
fi
}

while true;do
check_mysql_process_number
[ $? -eq 1 ] && exit
done
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值