监控php-fpm并自动重启服务的shell脚本_linux shell

脚本代码:

复制代码 代码如下:

#!/bin/bash

#变量初始化
process="php-fpm" #进程名
startCmd="/etc/init.d/php-fpm start" #启动命令
down=0

while true
do
    #取得http状态码
    code=$(curl -H "Host:www.jb51.net" -m 5 -L -s -w %{http_code} http://127.0.0.1 -o /dev/null)
    #当状态码返回000或者大于等于500时,计数故障到down变量
    if [ $code -eq 000 -o $code -ge 500 ];then
        ((down++))
    else
break
    fi
    #稍等5s
    sleep 5
    #判断是否连续检测三次都为故障.
    if [ $down -ge 3 ];then
if [ "$(find /tmp/${process}_restart -mmin -3)" == "" ];then
                #取得进程名对应的所有pid
pids=$(ps aux | grep ${process} | grep -v "grep" | awk '{print $2}')
                #依次对所有pid执行kill命令
for i in $pids;do
kill -9 $i
kill -9 $i
done
                #kill完pid后,启动服务
$startCmd
echo "$(date) Return code $code,${process} had been restarted" >> /tmp/${process}_restart
else
echo "$(date) ${process} not yet recovery.As it had been restarted in 2 minutes.so this time ignore." >> /tmp/${process}_not_restart
fi

break
    fi
done

时间: 2024-09-22 01:30:49

监控php-fpm并自动重启服务的shell脚本_linux shell的相关文章

智能监测自动重启Apache服务器的Shell脚本_linux shell

由于需要监控某些要求高可用性的Apache服务器,除了专业的监控报警设备,低成本下在Apache服务器上写一个自动监测Apache状态的脚本是个不错的主意.在网上搜索了许多类似的脚本,但由于局限性较大,也都存在一些不完善的地方,所以自己写了一个. 脚本功能与特点 1.能够每隔一段时间监测Apache服务器的可用性(由于本脚本直接模拟了客户端的访问,因此这里的"可用性"是指切切实实的正常可访问) 2.在出现无法访问的情况下,能够自动重启Apache服务(强行重启) 3.在重启后仍然无法正

linux下监视进程 崩溃挂掉后自动重启的shell脚本_linux shell

================================================= 本文为khler原作,转载必须确保本文完整并完整保留原作者信息及本文原始链接 Author: HeYuanHui E-mail: khler@163.com QQ: 23381103 MSN: pragmac@hotmail.com ================================================= 如何保证服务一直运行?如何保证即使服务挂掉了也能自动重启?在写服务

shell使用mysqld_multi自动做多实例从库脚本_linux shell

复制代码 代码如下: # cat doallslave.sh#!/bin/sh#code by scpman#mail:scpman@live.com#blog:http://www.scpman.com#name:"doallslave.sh"helpinfo(){echo -e '\t\thelp 查看帮助信息'echo -e '\t\t自动做allslave从库脚本使用帮助'echo -e '\t\tslavename 只能是xxx_xxx这种命令例如:zq2013_test1'

linux下mysql如何自动备份shell脚本_linux shell

Linux 服务器上的程序每天都在更新 MySQL 数据库,于是就想起写一个 shell 脚本,结合 crontab,定时备份数据库.其实非常简单,主要就是使用 MySQL 自带的 mysqldump 命令. #!/bin/bash # Shell script to backup MySql database # To backup Nysql databases file to /backup dir and later pick up by your # script. You can s

linux下实现ftp自动备份shell脚本_linux shell

利用here文档 复制代码 代码如下: #!/bin/sh ftp -ivn 210.29.28.124 <<EOF user yun yun2011 lcd /home/veyun cd /home/veyun/yhb get v bye EOF 解释: -i :关闭多文件传输过程中的交互提示,所以不会再有让用户输入用户名和密码的提示 -n:阻止了初始连接时的自动登录 -v:将ftp命令设置为verbose模式,从而可以在会话时看到其中的命令 在本例中使用用户名yun和密码yun2011登录

一个监控网卡流量的shell脚本_linux shell

实现代码: #!/bin/bash eth_in_old=$(ifconfig eth0|grep "RX bytes"|sed 's/RX bytes://'|awk '{print $1}') eth_out_old=$(ifconfig eth0|grep "RX bytes"|sed 's/.*TX bytes://'|awk '{print $1}') sleep 1 eth_in_new=$(ifconfig eth0|grep "RX byt

监控服务器swap并重启php的Shell脚本_linux shell

折中一下,写个脚本监控swap吧,放在crontab里面,2小时执行一次,世界安静了,再也没有烦人的报警短信了 复制代码 代码如下: #!/bin/bash function usage {         echo "Usage: $0"         echo "e.g. $0 1500"         exit } if [ $# -lt 1 ];then         usage fi typeset -i nowSwap limitSwap limi

用expect实现的自动登录到多台服务器的shell脚本_linux shell

复制代码 代码如下: #!/usr/bin/expect -fset ipaddress [lindex $argv 0]set passwd [lindex $argv 1]set timeout 30spawn ssh root@$ipaddress#expect "yes/no"#send "yesr"expect "password:"send "$passwdr"expect "]*"send &

自动杀掉占用较多CPU资源的Shell脚本_linux shell

复制代码 代码如下: #!/bin/bash # March-13-2006# CPUuse trigger script by Noel## bash code to watch a running program's CPU usage.# if it's above a set value, it will auto send an email.# You will need to set a Cron job to run this script every xx minutes## S