我已经为数据库还原的自动化创建了一个bash脚本。当我运行以下命令时,我得到/my/sql/file/path.sql:没有这样的文件或目录。
ssh $USER@"$cloneMysqlHost" gunzip /path/file.sql.gz && MySQL -u root -p db_name < /path/file.sql
我在ssh上的主机上做了一个ls -lrot,只是为了确保文件存在权限是正确的,它们是。
任何想法我做错了什么?
提前致谢!
答案 0 :(得分:2)
&&
导致 local shell拆分命令并在本地运行MySQL
命令。
<
重定向也在本地完成(以及错误原因)。
虽然正在远程主机上执行gunzip
。
如果您希望它在远程系统上运行,则需要将整个参数引用到ssh
。
ssh "$USER@$cloneMysqlHost" 'gunzip /path/file.sql.gz && MySQL -u root -p db_name < /path/file.sql'
答案 1 :(得分:0)
您是否正确提供密码?此外,不确定&amp;&amp;和将要使用管道的情况。 MySql可能无效,请使用mysql。有关详细信息,请参阅here。
ssh $USER@"$cloneMysqlHost" gunzip /path/file.sql.gz | mysql -u root -p [password] db_name