MySQL定时检测MySQL进程服务的运行状态服务 | 您所在的位置:网站首页 › mysql的定时任务 › MySQL定时检测MySQL进程服务的运行状态服务 |
centos7.6下定时检测MySQL进程中止后手动重启的方式 摘要: 序言近来发觉MySQL服务隔三差五都会死掉,引起我的网站和爬虫都未能正常运作。chmod777monitor.sh之后运行脚本测试一下,显示mysql正在运行。结语这样,我们就实现了五分钟定时检查MySQL进程服务。 序言 近来发觉MySQL服务隔三差五都会死掉,致使我的网站和爬虫都未能正常运作。自己的网站是基于MySQL,在做爬虫存取一些资料的时侯也是基于MySQL,数据量一大了,MySQL它就有点受不了了,经常会崩掉,尽管我自己有网站监控和短信通知,并且很多时侯还是须要我来自动联接我的服务器重新启动一下我的MySQL,这样简直太不友好了,所以,我就觉定自己写个脚本硬盘安装linux,定时监控它,假如发觉它死掉了就重启它。 好了centos定时重启,闲言碎语不多讲,开始我们的配置之旅。 编撰Shell脚本 首先,我们要编撰一个shell脚本,脚本主要执行的逻辑如下: 显示mysqld进程状态,假如判定进程未在运行,这么输出日志到文件,之后启动mysql服务,假如进程在运行,这么不执行任何操作,可以选择性输出检测结果。 执行如下命令: cd /etc/mysql touch listen.sh vi listen.sh 步入到vi中,我们添加如下脚本内容: #!/bin/bash pgrep mysqld &> /dev/null if [ $? -gt 0 ] then echo "`date` mysql is stop" service mysql start else echo "`date` mysql running" fi 其中pgrepmysqld是检测mysqld服务的运行状态,&>/dev/null是将其结果输出到空文件,也就是不保存输出信息 $?是领到上一条命令的运行结果,-gt0是判定是否小于0,旁边则是输出时间到日志文件,之后启动mysql,否则不启动mysql 保存好了,这么我们执行如下的命令,来测试一下。 嗯,编辑完了.sh文件以后,我们首先要对其进行授权,降低可执行的权限。 chmod 777 monitor.sh 之后运行脚本测试一下,显示mysql正在运行。把mysql关闭,运行脚本,便会测量到mysql已关掉,之后重新启动了mysql,再度运行,便会发觉mysql正常运行了。 更改日志输出 好,接出来我们把输出的内容保存到日志里。更改脚本文件如下 #!/bin/bash pgrep mysqld &> /dev/null if [ $? -gt 0] then echo "`date` mysql is stop" >> /var/log/mysql_listen.log service mysql start elseecho "`date` mysql running" >> /var/log/mysql_listen.log fi 这样,每执行一次脚本,输出结果就会被保存到/var/log/mysql_listen.log中了。 添加定时任务 好了linux系统日志,脚本可以顺利执行了,这么我们就须要定时调用一下这个脚本来运行了,我们须要用到cron。 首先我们须要编辑一下corn调度表格,命令如下: crontab -e 假如你是第一次编辑这个centos定时重启,他会让你选择文件打开方法,随意选一个数字就好了。 例如我们用GNU打开的,我们就在它的最后一行添加下边的一句话即可。 /5代表五分钟执行一次,前面的四个点依次代表了,小时,日,月,礼拜。假如想要时间长一些,例如一小时调度一次,那就设置一下前面第一个*就好了。 好,保存一下,重启cron服务。 service cron restart 嗯,调度任务早已添加进去了,这样,每五分钟系统都会调用一下刚刚写的那种脚本。 过一段时间,我们来看一下运行疗效,嗯,监控跑的很顺利呐。 结语 这样,我们就实现了五分钟定时检查MySQL进程服务。 原文引自: |
CopyRight 2018-2019 实验室设备网 版权所有 |