我想写一个脚本,用于在MySQL服务处于停止状态时重新启动它。我不知道如何在这个脚本上写IF语句。
发布于 2014-04-26 15:18:30
@vastlysuperiorman
if!$(ps aux | grep mysql) then服务mysql重新启动fi
首先,别忘了保护你的操作对象。请参阅此提醒:bash : Illegal number
然后,您可以通过以下方式进行简化:
[[ $(ps -ef | grep [m]ysql) ]] || service mysql restart(我更喜欢使用ps -ef,因为它更符合POSIX,即使我在Bash中总是使用[[而不是test或[ )。
最后,最好用service mysql status检查状态。您可以尝试如下所示:
[[ $(service mysql status) =~ running ]] || service mysql restart@user33398
例如,您可以尝试在循环中或通过watch命令使用此测试。或者您可以使用更智能的工具,如cron、jenkins或nagios来实现这一点。
发布于 2014-04-26 15:06:45
重新发明轮子是没有意义的。有很多很棒的软件解决方案可以帮你做到这一点。Monit是一个很好的开源示例。
如果您选择编写脚本,一个简单的解决方案可能是执行如下操作:
if [ ! $(ps aux | grep mysql) ]
then
service mysql restart
fihttps://stackoverflow.com/questions/23307723
复制相似问题