本人阿里云上MySQL服务和很多的应用服务全部放在一个机器上,流量大的时候,mysql会偶尔挂掉,所以这里写了一个监听MySQL的脚本,定时监听MySQL进程。
直接捞干的:
为了管理方便我在/home/listener/ 文件夹下新建shell文件:mysql_listener.sh,
输出日志到mysql_listener.log
这里注意一下,脚本中的文件路径记得用绝对路径哦,因为shell脚本在定时任务中执行的话,如果用相对路径的话就有问题了。
#!/bin/bash
pgrep mysqld &> /dev/null
if [ $? -gt 0 ]
then
echo "`date` mysql is stop" >> /home/listener/mysql_listener.log
service mysql start
else
echo "`date` mysql running" >> /home/listener/mysql_listener.log
fi
脚本编辑完之后记得添加执行权限 sudo chmod 777 mysql_listener.sh
接下来,添加定时任务:我们需要用到 cron,编辑一下corn调度表格
命令: crontab -e
文件中添加: */5 * * * * /home/listener/mysql_listener.sh 即 每隔5分钟执行一次脚本
保存,重启cron服务: service crond reload。
最后观察日志,确定脚本完美执行。