我想编写一个脚本,以便在处于停止状态时重启MySQL服务。 我不知道如何在这个脚本上写IF语句。
答案 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
命令。或者您可以使用更多智能工具,例如cron
或jenkins
或nagios
来执行此操作。
答案 1 :(得分:0)
没有意义重新发明轮子。有很棒的软件解决方案可以为您做到这一点。 Monit是一个很好的开源示例。
如果您选择编写脚本,一个简单的解决方案可能是执行以下操作:
if [ ! $(ps aux | grep mysql) ]
then
service mysql restart
fi