【问题标题】:Mysqldump through SSH on remote windows server using bash script使用 bash 脚本在远程 Windows 服务器上通过 SSH 进行 Mysqldump
【发布时间】:2013-04-26 06:41:55
【问题描述】:

我正在尝试编写一个 bash 脚本来将数据库从远程服务器迁移到本地。不幸的是,我们的服务器之一是 windows 服务器。我安装了 freesshd,所以我可以使用 ssh。

当我从我的 ubuntu shell 运行它时:

sshpass -p 'my_password' ssh user@host 
  'C:/wamp/bin/mysql/mysql5.1.36/bin/mysqldump 
  -u root -pmypassword mybase --result-file=C:/wamp/outfiles/mybase.sql'

它运行良好,它会倾倒基地。 不幸的是,当我从 bash 脚本做同样的事情时 - 我得到了 permission denied 反馈。为什么?来自脚本的命令和常规的 shell 命令有什么区别吗?

这是我现在的 bash 脚本:

#!/bin/bash

remoteHost=$1
remoteUser=$2
echo -n "Provide remote db password: "
read -s remoteDbPass
echo ""
echo -n "Provide remote server password: "
read -s remotePass
echo ""
dbName=$3
localDbName=$4
dumpPath=/var/lib/mysql/dumps/
winMysqlPath=C:/wamp/bin/mysql/mysql5.1.36/bin/
winDumpPath=C:/wamp/outfiles/

sshpass -p '$remotePass' ssh $remoteUser@$remoteHost '${winMysqlPath}mysqldump -u root -p$remoteDbPass $dbName --result-file=$winDumpPath$dbName.sql'
pscp -pw $remotePass $remoteUser@$remoteHost:$winDumpPath$dbName.sql $dumpPath$dbName.sql
mysql $localDbName < $dumpPath$dbName.sql

【问题讨论】:

    标签: bash ssh mysqldump permission-denied windows-server


    【解决方案1】:

    用单引号' 引用的变量不会被扩展。 改用双引号"

    【讨论】:

    • 我很怀疑,因为当您回显该行时,它在 ' 内部发生了变化,但我想这是因为在 " 之间。非常感谢!
    猜你喜欢
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 2018-04-17
    • 2016-11-27
    • 1970-01-01
    • 2013-03-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多