Linux中利用shell脚本定时检测mysql状态,实现自动重启

最近几个月网站服务器老是半夜挂掉,罪魁祸首就是 mysql 自动停止导致的,那就头痛医头,想办法让Mysql 自动启动起来。

要解决这个mysql无规律自动停掉的问题,首先给服务器加个定时执行任务,每分钟去检测一下数据库服务的运行状态,要是down 掉了,就立马启动起来。


Linux中利用shell脚本定时检测mysql状态,实现自动重启_第1张图片

我真是太机智了。(别问我怎么不去解决mysql 死掉的真正诱因)

第一步,添加定时任务,使用crontab。

crontab -e

*/1 * * * * /目录/文件名.sh #表示每分钟执行一次 sh 文件

第二步,编写shell执行文件,代码如下:

#!/bin/bash

pgrep -x mysqld &> /dev/null

if [ $? -ne 0 ]

then

echo “At time: `date` :MySQL is stop .”>> /日志路径

/etc/init.d/mysqld start

else

echo “MySQL server is running .”

fi

这里要注意,不能用service mysqld/mysql start 命令来启动,会导致mysql启动不了,应使用绝对路径,/etc/init.d/mysqld start来启动。

另外,也可以不写入日志。删掉>> /日志路径即可。

如发现这样操作了,还没有得到期望的结果,可排查crontab是否执行了相应的任务,脚本权限是否够,脚本内部命令或格式是否正确等方面。

若权限不够,则加上权限。

chmod +x ./shell文件.sh #使脚本具有执行权限

你可能感兴趣的:(Linux中利用shell脚本定时检测mysql状态,实现自动重启)