gpt4 book ai didi

mysql - 在继续脚本之前等待 SSH 隧道

转载 作者:行者123 更新时间:2023-11-29 10:26:32 26 4
gpt4 key购买 nike

我有一个从 Cloud Foundry 数据库转储数据的脚本,它的工作方式如下:

cf ssh -L 33001:db.host:3306 --skip-remote-execution App &
TUNNEL_PID=$!

mysqldump --protocol TCP --port= 33001 ..... db_name > /tmp/my-db-dump.sql

kill $TUNNEL_PID

问题是 mysqldump 失败并显示

mysqldump: Got error: 2003: Can't connect to MySQL server on 'localhost' (61) when trying to connect

我预计问题是隧道尚未建立。当我在 mysqldump 之前 sleep 5 时,一切正常。但我不想依赖随机的 5 秒。是否可以等待隧道启动?

最佳答案

可以通过 ssh 命令运行 mysqldump,而不是打开隧道吗?

Mysqldump 将写入其标准输出,该输出将通过 ssh 命令传输回您的客户端主机。

ssh App "mysqldump db_name" > /tmp/my-db-dump.sql

或者您甚至可以转储到服务器上的压缩文件,然后使用 scp 获取转储文件。这将有助于传输更快。

ssh App "mysqldump db_name | gzip -c > /tmp/my-db-dump.sql.gz"
scp App:/tmp/my-db-dump.sql.gz .
ssh App "rm /tmp/my-db-dump.sql.gz"

这尚未经过测试,但我希望它能为您提供一些尝试的想法。

关于mysql - 在继续脚本之前等待 SSH 隧道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48192050/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com