【问题标题】:Moving files across a computers connected by LAN在通过 LAN 连接的计算机之间移动文件
【发布时间】:2012-02-24 04:33:01
【问题描述】:

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

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

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

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

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

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

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

【问题讨论】:

    标签: windows linux file scripting ftp


    【解决方案1】:

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

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

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

    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】:

      我建议在源主机上制作一个存档(例如.tar.gz 文件),使用scp 传输它,然后在目标主机上取消存档。

      您也可以使用unisonrsync

      【讨论】:

      • 要使用 scp,我需要安装哪些软件包?另外,如果我要使用 perl 编写代码,你会怎么说,所以我必须在两个平台上运行相同的代码..
      • scpssh 内;您可能需要openssh-clientopenssh-server 包,并且您需要阅读有关配置和使用它的教程。
      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-05-25
        • 2016-07-23
        • 2015-06-19
        • 2011-06-03
        • 1970-01-01
        • 1970-01-01
        • 2015-12-18
        • 1970-01-01
        相关资源
        最近更新 更多