如果您服务器的内存不足或者执行大量消耗CPU、内存等操作时(比如出现攻击,或大量的采集入库行为时),可能会造成mysql数据库异常停止的故障。
此守护脚本进程可以定时检测mysql服务是否运行,如果未正常运行,会自动启动。
如果您使用的是宝塔面板,可以进入宝塔面板--任务计划中添加shell脚本计划
守护脚本如下:
脚本一(适用于宝塔面板):
pgrep -x mysqld /dev/null
if [ $? -ne 0 ];then
bash /www/server/panel/script/rememory.sh
/etc/init.d/mysqld start
fi
如果您想手动添加任务计划也是可以的,通过ssh进入服务器内,将脚本二写入到一个sh文件里,然后可以通过crontab -e 手动添加任务计划。
具体操作如下:
1,新建mysql_status.sh 文件,并写入以下脚本:
vi /root/mysql_status.sh
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
pgrep -x mysqld /dev/null
if [ $? -ne 0 ]
then
echo "At time:$(date) :MySQL is stop ." /var/log/mysql_messages
/etc/init.d/mysqld start
else
exit
fi
:wq #保存
2,crontab -e 进入编辑crond服务,添加如下命令:
*/5 * * * * /root/mysql_status.sh
:wq #保存退出
3,重启crond服务
systemctl restart crond
这样就完成了mysql 的进程赛程任务了。