登录
  • 人们都希望被别人需要 却往往事与愿违
  • 预测未来最好的方法就是去创造未来@林肯 (美国前总统)

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

Linux Benny小土豆 7052次浏览 842字 1个评论
这篇文章在 2016年02月22日09:03:52 更新了哦~

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

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

恰巧近几天学习了点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啦 :lol:  :lol: 

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

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

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

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

重启cron服务

service cron restart

亲测好用

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

如果你真的是懒得不能再懒了,那么就执行下面这句吧...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
喜欢 (1)
分享:-)
关于作者:
If you have any further questions, feel free to contact me in English or Chinese.
发表我的评论(代码和日志请使用Pastebin或Gist)
取消评论

                     

去你妹的实名制!

  • 昵称 (必填)
  • 邮箱 (必填,不要邮件提醒可以随便写)
  • 网址 (选填)
(1)个小伙伴在吐槽
  1. 回复呢?
    Benny笨土豆2016-03-04 20:17 回复