阅读量:325
我们建站初期都会选择一台小内存的VPS服务器,这样降低建站初期的成本,再说初期访问量很小没有必要使用高配服务器,但是使用过程中不知道是不是内存不够的原因,MySQL数据库服务总是会自动停止,就是说数据库都宕机了。那么有没有什么办法在Linux上定时检测MySQL服务是否宕机,并自动重启服务呢?本文分享个基于Shell脚本和crontab命令的定时检测MySQL服务是否宕机,并自动重启服务的方案,如果你也遇到了这种问题,可是尝试用这种解决办法。
一、检测MySQL服务脚本
MySQL自动重启的Shell脚本非常简单,整个逻辑就是检测是否有MySQL的进程,如果没有就重启并记录到日志文件中:
shell
pgrep mysqld &> /dev/null
if [ $? -gt 0 ]; then
lnmp restart
echo 'MySQL stopped at time: date' >> /root/log/mysql_listen.log
fi
二、定时任务
定时检测的功能就是通过crontab实现的,具体的介绍可以参考:《Linux利用crontab实现定时任务格式与用法简介》。例如我这里设置的是每5分钟检查一次MySQL服务:
shell
/5 /root/mysql.sh > /dev/null 2>&1 &