A-A+

Ubuntu Linux服务器中定时监测MySQL数据库进程终止时自动重启的方法

2017年11月19日 Linux系统 阅读 664 views 次

数据库是服务器中资源开销非常大的一个进程,当服务器出现内存不够用、CPU压力过大等问题时,数据库往往首当其冲被系统自动结束进程。下面通过一段Shell来实现在Ubuntu Linux服务器中定时监测MySQL数据库,当MySQL进程终止时将其自动重启。脚本中主要使用了pgrep命令进行进程监控。

1、创建监控脚本

脚本内容如下:
#!/bin/bash
pgrep mysqld &> /dev/null
if [ $? -gt 0 ]
then
echo "`date` mysql is stop" >> /var/log/mysql_listen.log
service mysqld start
else
echo "`date` mysql running" >> /var/log/mysql_listen.log
fi

其中 pgrep mysqld 是监测mysqld服务的运行状态,&> /dev/null 是将其结果输出到空文件,也就是不保存输出信息。$? 是拿到上一条命令的运行结果,-gt 0 是判断是否大于0,后面则是输出时间到日志文件,然后启动mysql,否则不启动mysql。

脚本可以放在任意目录中,脚本中的日志文件mysql_listen.log也可以放在任意目录中。编辑完脚本后需要对脚本进行授权,增加其可执行权限,例如脚本的文件名为listen.sh,则授权命令代码为:

sudo chmod 777 listen.sh

2、添加定时任务

脚本创建完成后,我们需要编辑一下corn调度表格来定时执行脚本内容,命令如下:

crontab -e

如果你是第一次编辑这个文件,会让你选择文件打开方式,选择一个自己熟悉的编辑器就可以了。打开后在文件的末尾添加如下代码:

*/5 * * * * /etc/mysql/listen.sh

/5代表五分钟执行一次,后面的四个点依次代表了,小时,日,月,星期。如果想要时间长一些,比如一小时调度一次,那就设置一下后面第一个*就好了。

编辑完成后重启cron服务,代码如下:

service cron restart

这样,每五分钟系统就会调用一下刚才写的那个脚本。

个人公众号“数字化设计CAX联盟”,欢迎关注,共同交流
为您推荐:

给我留言

© 坐倚北风 版权所有 严禁镜像复制 苏ICP备15034888号. 基于 Ality 主题定制 AliCMS
联系邮箱:leanwind@163.con,微信公众号:数字化设计CAX联盟

用户登录

分享到: