颖想家

所谓幸福就是你在,我在,你一直在,我一直在

使用crontab定时任务守护mysql服务

crontab命令用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。

安装crontab:yum install crontabs

crontab:定时任务的守护进程,精确到分,设计秒的我们一般写脚本  -->相当于闹钟

日志文件:  ll /var/log/cron*

编辑文件: vim /etc/crontab

进程:ps -ef | grep crond  ==> /etc/init.d/crond restart

作用:定时备份,实时备份

 crontab服务启动与关闭:

crond.png

使用shell脚本,定时检查mysqld的服务状态,一旦发现停止工作,就立即执行重启。以下是处理过程。

1、在/root/bin目录下建立一个shell目录。(文件按类别放在自己建的目录里,方便使用、查找、编辑、删除。这个习惯自己知道就好。)

mkdir /root/bin

cd /root/bin

2、建立mysqld服务守护脚本。

vim mysqld_protect.sh

脚本内容:

#!/bin/bash

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin

export PATH

pgrep -x mysqld &> /dev/null

if [ $? -ne 0 ]

 then

echo "At time:$(date) :MySQL is stop .">> /var/log/mysql_messages

 service mysqld start

 else

exit

 fi

在上面的代码中/var/log/mysql_messages主要是将MySQL出问题时的相关信息记录下来,以备必要时进行查询。所以接下来我们还要建立一个空白的mysql_messages文件。

vim /var/log/mysql_messages

执行上面命令后按键盘上的“ESC”,然后输入“:wq”就是保存退出,即可。


利用crontab增加一个定时任务(需要前提安装crontab)。

crontab -e

在crontab里增加下面一行内容:

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

上面一句话的大体意思就是每隔5分钟就执行以下mysqld_protect.sh这个脚本,执行结果不发送结果邮件。

上述方法是通过shell脚本监测mysqld的状态,大家也可以延伸到监测其他系统进程。

发表留言