Redis状态监控并自动重启脚本

流氓凡 技术分享 2021-04-24 7.05 K 0

解决了什么问题?

Redis自动监控如果停止就直接重启,此方式也可以解决PHP无法通过exec函数执行redis重启不生效问题。

脚本和执行

shell脚本如下,基础脚本可自定义各种使用场景。原理就是监听6379端口是否被占用,如果redis停止那么端口中的进程数就是0,这时候直接重启Redis即可。

#!/bin/bash

while true
do
	count=`netstat -tunple | grep 6379 |  wc -l`
	if [ 1 -gt $count ]; then
		echo "Redis has stopped, restart..."
                /etc/init.d/redis restart
		sleep 1
	else
#	  echo "Redis Run in system"
		sleep 1
	fi

done

后台运行此脚本,(这里监听的redis重启指令是:/etc/init.d/redis start (宝塔默认))

nohup ./restart_redis.sh 2>&1 &

评论