这是一个奇怪的问题。我有一个构建脚本,它将数据库转储到一个 sql 文件(其中包含 3 个数据库)。
然后我将文件上传到临时服务器(有效),当我运行或执行命令时:
sshpass -p 'webmin' ssh webmin@apps.mydomain.local mysql -u root < /var/www/complete_db.sql
我收到错误:
bash: /var/www/complete_db.sql: No such file or directory
这是不正确的 - 它最肯定是在该路径的临时服务器上。如果我远程进入服务器并执行:
mysql -u root < /var/www/complete_db.sql
它按预期导入,一切正常......
即使我这样做
sshpass -p 'webmin' ssh webmin@apps.mydomain.local ls -al /var/www
我可以清楚地看到服务器上的文件...有什么想法吗?
最佳答案
我打赌 < /var/www/complete_db.sql
部分正在传递给 sshpass,而不是作为发送到远程服务器的命令的一部分。
巧妙地使用引号可能可以解决这个问题 - 我会尝试将整个远程命令放入引号中:
sshpass -p 'webmin' ssh webmin@apps.mydomain.local "mysql -u root < /var/www/complete_db.sql"
关于mysql - 远程mysql导入: No such file or directory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42258074/