在通过LAN连接的计算机上移动文件

时间:2012-02-01 13:45:25

标签: windows linux file scripting ftp

我需要将整个目录从网络中的一台计算机移动到另一台计算机(以独立于平台的方式)。基本上我正在开发一些自动化工具来帮助开发人员进行构建验证测试,为此;我被指示automate在多个平台上安装和卸载产品。所以,我需要先复制文件!

这是我在概念和实践知识方面需要一些帮助的地方。

首先,我要提一下,使用像FileZilla或WinSCP这样的东西是不可能的,因为我需要事情发生automatically而不是通过按钮点击。但请告诉我这些工具是否有任何命令行实用程序!

我尝试过Perl的NET :: FTP,虽然看起来很有前途,但我想知道这是否是最好的选择。另外,我想知道在运行FTP之前有什么先决条件,我的意思是我还需要在另一端安装perl吗?我经常读到来自perl的FTP的命令实际上尝试连接到FTP host,这是否意味着如果我没有以某种方式配置远程主机,它将无法工作?如果我是对的,那么这个额外的配置是什么呢?

除此之外,还有其他方法可以解决我的问题吗?我的意思是我在这里寻找能够帮助我进行平台无关文件传输的API。但是再一次,我不能使用需要按钮点击和工具的工具,因为我正在进行自动化,所有东西都需要以程序化的方式自动完成。

另外,我认为这是一个非常通用的问题陈述:“在通过LAN连接的计算机上移动文件”;因此,如果我们能够以这篇文章的答案形式列出(可能)许多选项(解决问题的方法),那就太棒了。

提前感谢您提供的任何帮助。

3 个答案:

答案 0 :(得分:1)

我建议在源主机上进行存档(例如.tar.gz文件),使用scp进行传输,并在目标主机上取消存档。

您还可以使用unisonrsync

答案 1 :(得分:1)

如果您目录中的几乎所有文件都已更改,则创建存档,通过网络发送存档以及取消存档都是有意义的。实际上,如果您的局域网速度足够快,那么压缩存档可能会更快 - 只需使用tar。

如果只有部分文件发生了变化,rsync(命令行工具)只会下载更改。它可以像这样使用ssh:

rsync -ae ssh username @ hostname:/ path / to / files / store / here / local

http://www.thegeekstuff.com/2010/09/rsync-command-examples/

在Linux和OS X上,cron和crontab允许您安排脚本定期运行。 Windows提供Windows任务计划程序。

如果您不关心LAN上的加密,FTP就可以了。否则,SSH会更好。

rsync在OS X和Linux上可用,但我认为您可以通过Cygwin在Windows上使用它。

答案 2 :(得分:-2)

我建议你在.NET中开发自己的FTP客户端。这样您就可以完全控制应用程序,而不是按钮单击,您可以使用Windows-scheduler安排它。这是一篇关于如何在VB.NET中创建自己的FTP客户端的文章:

http://dot-net-talk.blogspot.com/2008/12/how-to-create-ftp-client-in-vbnet.html