【问题标题】:mysqldump with ssh connection in shell script在 shell 脚本中使用 ssh 连接的 mysqldump
【发布时间】:2012-04-06 22:41:14
【问题描述】:

我正在使用打开 ssh 连接并创建 sqldump 的 shell 脚本。

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

这是我使用的行:

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

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

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

【问题讨论】:

  • /home/user/sqlfile.sql 是在客户端机器上,也就是说你运行命令的电脑,该目录是否存在?
  • @ajreal 非常感谢您的评论。我不知道为什么它不起作用。它现在将 sqlfile 放在我的客户端计算机上。但是可以放在服务器上吗?

标签: linux shell ssh mysqldump


【解决方案1】:

您还可以将 ssh 远程命令括在引号中。例如

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

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2014-12-29
      • 2019-01-13
      • 2018-07-16
      • 2015-08-19
      • 2018-09-04
      • 2010-09-06
      • 1970-01-01
      • 1970-01-01
      • 2021-05-19
      相关资源
      最近更新 更多