2009-12-10 117 views
0

我想使用Nant.Contrib中的scp任務將文件複製到遠程服務器。在NANT腳本中使用scp部署到遠程服務器

我用下面的代碼來做到這一點:

<target name= "QADeploy"description="gthtyb" > 
<loadtasks assembly="C:\nantcontrib-0.85\bin\NAnt.Contrib.Tasks.dll" /> 
<echo message="htyh"/> 
<scp file="D:\SourceTest\redist.txt" server="\\10.4.30.19" user="xxx:uuuu">  
</scp> 
</target> 

但我得到一個錯誤:SCP未能啓動。該系統找不到指定的文件。 的代碼如下: 後來我已經下載pscp.exe和修改代碼如下:

<target name= "QADeploy" 
    description="gthtyb" > 
<loadtasks assembly="C:\nantcontrib-0.85\bin\NAnt.Contrib.Tasks.dll" /> 

<echo message="htyh"/> 

<scp file="D:\SourceTest\redist.txt" server="\\10.4.30.19" user="xxx:uuuu" program="C:\pscp\pscp.exe">  
</scp> 

現在,我收到以下錯誤:

[SCP] ssh_init:主機不存在

外部程序失敗:C:\ PSCP \ pscp.exe

u能請幫助最新最好的方式將文件複製到使用南特遠程服務器。我正在使用此代碼將文件部署到遠程服務器。

謝謝

+0

它在本地工作嗎?在服務器上?地方?服務器是否可從命令行訪問SCP? – 2009-12-10 10:04:25

+0

如何檢查服務器是否可以通過scp訪問? – Mini 2009-12-10 10:10:19

回答

1

您不必在服務器的IP後面放置兩個反斜槓。

<scp file="D:\SourceTest\redist.txt" server="10.4.30.19" user="xxx:uuuu" program="C:\pscp\pscp.exe">  

另請注意,如果沒有「路徑」參數,默認目標文件夾是「〜」。

更新:這是崩潰pscp.exe程序的用戶名。從您的用戶名中刪除「:」或嘗試使用不同的名稱。

+0

我已經嘗試了沒有baclslashes ... :) – Mini 2009-12-10 10:08:43

+0

你可以嘗試通過使用「/」你的程序路徑? 或者將「program-path-sep」參數設置爲「\」? – 2009-12-10 10:10:16

+0

您還可以使用「-v +」選項啓動調試輸出嗎? 你也可以嘗試在命令行上啓動pcsp嗎? – 2009-12-10 10:15:10

0

它似乎有一些奇怪的如何pscp分析窗口中的路徑。下面應該修復ssh_init:主機不存在問題:

-upload 
pscp some.file [email protected][remote-host-or-ip]:/some/path/ 

-download 
pscp [email protected][remote-host-or-ip]:/some/path/some.file some.file 
相關問題