bash – Shell脚本问题:cron作业脚本在意外停止时重启MySQL服务器

我有这个脚本,我用它来设置CRON作业来执行这个脚本,所以它可以检查MySQL服务是否正在运行;如果没有,那么它重新启动MySQL服务:

#!/bin/bash
service mysql status| grep 'mysql start/running' > /dev/null 2>&1
if [ $? != 0 ]
then
    sudo service mysql restart
fi

我已经设置了cron job.

sudo crontab -e

然后补充说,

*/1 * * * * /home/ubuntu/mysql-check.sh

问题是它在每个cron作业执行时重启MySQL.
即使服务器正在运行,它也会重启MySQL服务
什么是脚本中的更正来做到这一点.

解决方法:

我怀疑您设置了cron作业以在crontab文件中执行此脚本,而不是在根crontab文件中.这是不正确的,因为如果您不以root身份运行服务mysql状态,则无法识别mysql服务.

因此,修改脚本如下:

#!/bin/bash
if [[ ! "$(/usr/sbin/service mysql status)" =~ "start/running" ]]
then
    /usr/sbin/service mysql start
fi

确保它是可执行的:

chmod +x /path/to/script

然后在根crontab中添加一个新条目,如下所示:

>使用以下命令编辑root crontab文件:

sudo crontab -e

>并将以下行添加到文件中:

*/1 * * * * /path/to/script

>注意:我已经设置了每分钟的cron作业,但您可以根据需要或您认为更好的方式进行更改.从这个意义上看http://en.wikipedia.org/wiki/Cron.

上一篇:基于anaconda环境使用的python安装pyaudio


下一篇:python – 如何在蓝牙设备连接时运行脚本?