2010-09-15 128 views
0

如何将文件从一台Windows机器复制到其他Windows机器?这样我就可以编写一个批处理脚本,可以从哈德逊机器运行该脚本。 我的要求是,我喜欢通过位于另一台Windows机器上的Hudson(战争将在本机中产生的战争)在另一台Windows机器上远程部署warcat服务器。仅供参考,两个窗口都在同一个网络或Intranet上。对于Linux部署,我们正在使用plink。 Windows部署有没有其他选择?如何将文件从一台Windows机器复制到其他Windows机器?

在此先感谢

+4

'copy sourcefile targetfile'?我认为您需要更具体地了解这些Windows机器是如何连接到彼此的,无论网络共享是否存在等。 – 2010-09-15 18:26:49

回答

0

取决于您实际上想要做什么以及安全要求是什么。有几个选项。最简单的方法是对远程计算机\\hostname\sharename\directory\actual.file使用带有UNC路径的复制命令。重要的是,远程计算机具有已定义的共享并允许用户哈德森在其下运行的写入访问权限(文件和共享级别)。这也意味着你不能在local_system帐户下运行hudson。 (默认选项,如果你运行哈德森作为服务)

其实我宁愿robocopy超过copy。我认为微软免费提供robocopy。研究robocopy的文档(帮助),这是一个管理员应该知道他们在做什么的程序。 Robocopy不仅强大,如果使用了错误的开关,它还可能“无意中”删除文件。

其他选项包括SCP和FTP,Master/Slave配置,其中从设备使用http/https协议从Hudson下载工件。

编辑:从vishu

感谢您的及时响应

评论。由于 你的答案解释说你在哈德森有很好的知识,我会 喜欢给我详细的要求。 我的要求是,我喜欢在部署Tomcat服务器 战远程 位于另一台Windows计算机通过 哈德森(战争将在这个 机上生成),位于另一个 Windows机器。仅供参考,两个窗口在同一网络或内部网上都是 。一个 更多事情要Linux部署我们是 使用plink。 Windows部署有没有替代 ?

我通常部署到Websphere Application Server。所以我需要阅读一点how to deploy to tomcat。它看起来像你只需要将wat文件放到正确的目录中,然后完成或更改当前由tomcat使用的配置文件,并且它会自动将其选中(只要所有配置都正确)。

由于部署场景和设置非常简单,我会考虑两个选项。我的首选是在目标Windows机器上安装一个ssh服务,并重用你已有的plink脚本(用于这个或其他项目)。这个想法是坚持一种技术。另一种选择是使用Windows共享。在这种情况下,确保Hudson使用“真实”帐户,以便Hudson不明确需要映射共享(可以是脚本,但密码可能未加密存储)。使用Hudson的写入权限在目标系统上创建共享。比其余的只是一个副本。对于副本,你应该看看robocopy,因为它比复制命令要好得多。我在这里假设的是构建工作进行部署。

如果您有两个工作,第一个创建工件,另一个工件部署工件。我目前更喜欢使用wget从job1中检索工件。这意味着job1存档它的工件。第二个作业从第一个作品中获取工件(使用wget和job1的运行URL)。在这种情况下,您可以在目标计算机上运行Hudson从站,并且可以在本地进行部署。您可以使用Windows和Linux的类似脚本。你可以用cygwin获得wget窗口(至少我认为是这样)。使用cygwin,你甚至可以在windows上使用你的linux脚本。优点是,您不需要共享并且不需要单独的工件存储库。如果将slave作为服务运行,则甚至不需要在目标机器上安装ssh服务器。

如果您手动触发部署,则可以使用batch task plugin。它实际上只是一项工作,您不必担心在工作之间移动工件。缺点是,您只能从最近的作业运行中进行部署,因为它取决于作业的工作空间。无法部署旧版本(如果您的项目现在已经中断,或者因为应用程序中存在重大错误而需要降级)。

如果您已经有工件存储库,请使用主从设置并从目标机器检查存储库中的工件。

我可以想出更多的选择,这将变得越来越深奥。最后,你必须决定你最喜欢什么,什么是最容易实现和维护,以及满足其他(次要)要求(例如某些安全限制)。

+0

感谢您的及时响应。由于你的答案解释说你在哈德森有很好的知识,我想详细说明我的要求。我的要求是,我喜欢通过位于另一台Windows机器上的Hudson(战争将在本机中生成)在另一台Windows机器上远程部署warcat服务器。仅供参考,两个窗口都在同一个网络或Intranet上。对于Linux部署,我们正在使用plink。 Windows部署有没有其他选择? – vishu 2010-09-15 21:38:02

-3

这可能是使用Linux终端以下命令行:

scp -3 [email protected]:path/from/directory/ [email protected]:path/to/directory 

会显示一个提示,要求这样的密码:

[email protected]'s password: [email protected]'s password: 

如果按给这两个密码才能进入在第一个密码后,它应该接受,但它不会。 即使您再次输入密码,但在第一次输入密码后没有按下输入密码,也不会再接受。

您必须先给user2,然后按回车键,然后输入user1的密码,然后按Enter键。这将工作。

我知道这听起来不对,但只有这样才行。这是Linux终端shell中的一个错误。

+0

我认为这不适用这个问题,因为OP要求在Windows机器上这样做,而不是在Linux上。 – 2016-01-01 13:00:39

+0

顺便说一句,没有“Linux终端外壳”这样的东西。你可以在终端中运行很多不同的shell。例如,终端可能是:文本控制台或在X内运行的终端仿真程序。无论何时,这是'scp'中的一个错误,因为这是连接到终端的唯一进程。 – 2016-01-01 13:28:55

+0

感谢Martin分享,非常感谢。 – 2016-01-05 05:03:45

相关问题