土豆不好吃

利用cron监测mysql状态并自动重启

话说以前(→_→至少有两个多月了)有一段时间,服务器负载过大导致MySQL服务被kill,作为一个具有灵性的码农,怎么能每天刷自己的博客手动重启呢?

恰巧近几天学习了点shell编程,在配合到cron,简要的写一个监测MySQL运行状态,如果挂了就自动开启的脚本!

下面上代码:

#!/bin/sh
pidof mysqld >/dev/null
if [ $? -eq 0 ]
then
echo "It is running."
else
echo "At `date` MySQL Server was stopped">> /home/mysql_log
service mysql start
fi

下面是对代码的解释:

pidof mysqld可以得出mysql的PID,如果mysql进程(mysqld)不存在,就不会有结果。

>重定向到黑洞里

$?的意思是上一个命令的退出值,通常来说0代表成功,1代表通用未知错误。所以在这里,假如mysqld不存在,那么$?就会是1

-eq是等于,shell执行$?是否等于0的判断,等于就是在运行,不等于就是没运行。

用echo和反引号并重定向到文件写日志,>代表覆写,>>代表追加。后面日志路径大家伙看着改

将这段代码保存为restart_mysql.sh放到某个目录,俺就给放到/home啦    

,然后终端crontab –e,最后一行添加如下内容

意思是每隔两分钟运行一遍脚本。

*/2 * * * * sh /home/restart_mysql.sh

俺这人比较懒,就没给脚本加上可执行权限,所以直接以"传参"的形式给sh了。

重启cron服务

service cron restart

亲测好用

如果你真的是懒得不能再懒了,那么就执行下面这句吧...root权限哦。当然了我其实是不太推荐的啦。

wget http://7xljcn.com1.z0.glb.clouddn.com/restart_mysql_installation.sh && sh ./restart_mysql_installation.sh

文章版权归原作者所有丨本站默认采用CC-BY-NC-SA 4.0协议进行授权|
转载必须包含本声明,并以超链接形式注明原作者和本文原始地址:
https://dmesg.app/cron-mysql-autorestart.html
退出移动版