mysqldump与shell脚本中的ssh连接

我正在使用一个shell脚本打开一个ssh连接并创build一个sqldump。

但是,当我在shell脚本中使用mysqldump ,它给了我错误:“没有这样的文件或目录”

这是我使用的线路:

 ssh user@host mysqldump -uusername -hlocalhost -ppassword --all-databases > /home/user/sqlfile.sql 

当我在打开的ssh连接或命令行中的服务器中使用mysqldump时, mysqldump工作正常。

所以我的问题是为什么我得到错误,为什么我不能在shell脚本中运行mysqldump命令?

您需要转义>符号。 尝试这个:

 ssh user@host mysqldump -uusername -hlocalhost -ppassword --all-databases \> /home/user/sqlfile.sql 

你也可以把你的ssh远程命令用引号引起来。 例如

 ssh user@host "mysqldump -uusername -hlocalhost -ppassword --all-databases > /home/user/sqlfile.sql" 

这样,如果您想将转储文件保存到本地文件夹中,您可以:

 ssh user@host "mysqldump -uusername -hlocalhost -ppassword --all-databases" > /home/user/sqlfile.sql