首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于检查mysql是否处于运行状态的Shell脚本

用于检查mysql是否处于运行状态的Shell脚本
EN

Stack Overflow用户
提问于 2015-06-17 17:52:03
回答 2查看 11K关注 0票数 2

我需要一个bash shell脚本,我可以使用cron作业运行该脚本,以检查远程服务器上的mysql是否正在运行。如果是,那么什么也不做,其他的启动服务器。

cronjob将每分钟检查远程服务器上是否有活动的mysql。我可以自己编写cron作业,但我需要有关shell脚本的帮助,以检查远程mysql是启动还是关闭。检查后的响应是向上还是向下并不重要。但这张支票很重要。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-17 19:02:02

您可以使用以下脚本

代码语言:javascript
复制
#!/bin/bash

USER=root
PASS=root123

mysqladmin -h remote_server_ip -u$USER -p$PASS processlist ###user should have mysql permission on remote server. Ideally you should use different user than root.

 if [ $? -eq 0 ]
        then
                echo "do nothing"
        else
                ssh remote_server_ip  ###remote server linux root server password should be shared with this server.
                service mysqld start
 fi
票数 5
EN

Stack Overflow用户

发布于 2016-10-05 00:54:34

所选答案中的脚本运行良好,但要求您在本地主机上安装MySQL客户端。对于Docker容器,我需要类似的东西,并且不想安装MySQL客户端。这是我想出来的:

代码语言:javascript
复制
# check for a connection to the database server
#
check=$(wget -O - -T 2 "http://$MYSQL_HOST:$MYSQL_PORT" 2>&1 | grep -o mariadb)

while [ -z "$check" ]; do
    # wait a moment
    #
    sleep 5s

    # check again
    #
    check=$(wget -O - -T 2 "http://$MYSQL_HOST:$MYSQL_PORT" 2>&1 | grep -o mariadb)
done

这有一点不同,因为它将循环,直到可以建立数据库连接。我还使用了MariaDB而不是常用的MySQL数据库。您可以通过将grep -o mariadb更改为其他值来更改这一点--我不确定MySQL在成功连接时返回什么,所以您将不得不尝试一下。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30888109

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档