2009-12-10 80 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 
相关问题