我需要一个bash shell脚本,我可以使用cron作业运行该脚本,以检查远程服务器上的mysql是否正在运行。如果是,那么什么也不做,其他的启动服务器。
cronjob将每分钟检查远程服务器上是否有活动的mysql。我可以自己编写cron作业,但我需要有关shell脚本的帮助,以检查远程mysql是启动还是关闭。检查后的响应是向上还是向下并不重要。但这张支票很重要。
发布于 2015-06-17 19:02:02
您可以使用以下脚本
#!/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发布于 2016-10-05 00:54:34
所选答案中的脚本运行良好,但要求您在本地主机上安装MySQL客户端。对于Docker容器,我需要类似的东西,并且不想安装MySQL客户端。这是我想出来的:
# 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在成功连接时返回什么,所以您将不得不尝试一下。
https://stackoverflow.com/questions/30888109
复制相似问题