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.

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...