tiger-sms ChatGPT 账号/ChatGPT 代注册 OpenAI API 代充值

Linux 上定时检测 MySQL 服务是否宕机,并自动重启服务

OpenAI API key

老王有一台小内存的 VPS 服务器,不知道是不是内存不够的原因,MySQL 服务总是会自动停止,数据库都宕机了,网站自然也是无法访问。本文分享个基于 Shell 脚本和 crontab 命令的定时检测 MySQL 服务是否宕机,并自动重启服务的方案,如果你也遇到了这种问题,可是尝试用这种解决办法。

一、检测 MySQL 服务脚本

MySQL 自动重启的 Shell 脚本非常简单,整个逻辑就是检测是否有 MySQL 的进程,如果没有就重启并记录到日志文件中:

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 服务:

*/5 * * * * /root/mysql.sh > /dev/null 2>&1 &

三、更多脚本

除了检测 MySQL 服务外,相应的还可以检测 PHP 服务、Nginx 服务等,在脚本上略微改动下就好了:

pgrep mysqld &> /dev/null
if [ $? -gt 0 ]
then
lnmp restart
echo "MySQL stopped at time: `date` " >> /root/log/mysql_listen.log
fi

pgrep nginx &> /dev/null
if [ $? -gt 0 ]
then
lnmp restart
echo "Nginx stopped at time: `date` " >> /root/log/mysql_listen.log
fi

pgrep php-fpm &> /dev/null
if [ $? -gt 0 ]
then
lnmp restart
echo "Php stopped at time: `date` " >> /root/log/mysql_listen.log
fi
赞(1)
关注我们
未经允许不得转载:老王博客 » Linux 上定时检测 MySQL 服务是否宕机,并自动重启服务