CentOS在停止时重启MySQL服务的脚本

时间:2014-04-26 06:54:41

标签: mysql bash shell

我想编写一个脚本,以便在处于停止状态时重启MySQL服务。 我不知道如何在这个脚本上写IF语句。

2 个答案:

答案 0 :(得分:2)

@vastlysuperiorman

if [ ! $(ps aux | grep mysql) ]
then
   service mysql restart
fi

首先,不要忘记保护你的操作数。请参阅此提醒:bash : Illegal number

然后,您可以简化:

[[ $(ps -ef | grep [m]ysql) ]] || service mysql restart

(我更倾向于使用ps -ef因为它更符合POSIX标准,即使我总是在Bash中使用[[而不是test[。< / p>

最后,最好使用service mysql status查看状态。您可以尝试类似的事情:

[[ $(service mysql status) =~ running ]] || service mysql restart

@ user33398

您可以尝试在循环中使用此测试,或者使用watch命令。或者您可以使用更多智能工具,例如cronjenkinsnagios来执行此操作。

答案 1 :(得分:0)

没有意义重新发明轮子。有很棒的软件解决方案可以为您做到这一点。 Monit是一个很好的开源示例。

如果您选择编写脚本,一个简单的解决方案可能是执行以下操作:

if [ ! $(ps aux | grep mysql) ]
then
    service mysql restart
fi