簡體   English   中英

使用bash腳本通過遠程Windows服務器上的SSH通過Mysqldump

[英]Mysqldump through SSH on remote windows server using bash script

我正在嘗試編寫一個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

用單引號引起來'變量將不會擴展。 請使用雙引號"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM