高效,简单的“懒惰”差分 FTP 上传工具?(例如,用于 Web 开发工作流程)

高效,简单的“懒惰”差分 FTP 上传工具?(例如,用于 Web 开发工作流程)

我正在寻找(已经花了一段时间并且有些绝望)一个工具,我猜大多数 Web 开发人员都需要:

一款快速、“懒惰”又称“差异化”的 FTP 上传工具。用于快速上传(无需进行太多服务器端检查)那些极少更改的文件,从我的开发者 PC(客户端)上传到我的网络服务器。在 Windows 下。最好是可编写脚本的,因此最好使用命令行可执行文件(或 jar)。

我认为这是一个普遍的需求,但我仍然没有发现任何令人信服的东西:

  • 99% 的时间(初始下载之后)我只想推送很少的更改的文件(但要尽可能快)

  • 是的,我知道:FAT 文件系统存在时间精度问题,客户端与服务器之间可能存在时区问题……在服务器端反复检查时间戳(不足)、时间戳、校验和(成本高昂),当然都需要时间。=>我将足够高效地在客户端跟踪更改(阅读:维护目录树的校验和列表)。因为我只从一个客户端上传到一个服务器。因此,难道“蒙眼”的懒惰模式(又称差分模式)不是最好的解决方案吗,还能节省几秒钟?(2 秒 vs. 15 秒对我来说意味着一切)。

  • 我希望 SFTP 的安全级别稍微高一点。但是,我的(廉价)网络托管商只允许密码验证(像普通 FTP 一样),而不允许私钥验证(因此,除了使其更加复杂之外,如果我理解正确的话,Putty 等不是一个选项……)

  • 我宁愿避免处理单独的 SSL 工具、Putty、CygWin……使用所需参数调用的单个 .exe(或 .jar)就好了,这样人们就可以自己决定,upload_clientA.bat而不用再考虑它了……

  • 需要排除。一些文件夹/文件(例如 psd)不能上传,但服务器上的一些文件(配置文件不会被我的开发配置覆盖)必须不受客户端更改的影响。这基本上就是我所需要的。

粗略地说,这可以归结为:

foo.exe upload 
    -s:d:\depot\webroot 
    -t:ftp.mywebhost.com:1234/www/
    -mode:sftp -u:me -P:youwish 
    -lazyMode
    -exclude /wp-config.php /cache/* /someElse

看着...

  • 目前,我正在使用一个相当旧的程序同步已经很接近了,但是缺少 SFTP。实际 FTP 上传开始前仍需要 5-15 秒...
  • 是的,我听说过好用的旧 linux/unix 工具 rsync,但我不确定是否可以满足所有这些要求。听起来我需要事先建立 SSL 层,进入 Cygwin...
  • 同步备份可能会完成这项工作,但获得 SFPT 意味着要购买 Pro。而且据我所知,没有快速的“蒙眼模式”。而且我不确定如何在目标端接受选定的(配置)文件...
    • 被允许在服务器上安装 git 可能是一个赢家......但是......没有机会......

有人知道像这样的简单、快速的命令行工具吗?

答案1

赛格威允许您运行 ssh 服务器,反过来您将获得 SFTP。

答案2

我想你想要网站复制。它具有您提到的所有功能,并且可以通过 FTP 或 SFTP 工作。

不过 sitecopy 是一个 Unix 应用程序,所以我不知道它是否能满足您“不必处理 Cygwin”的要求。对于 Windows 客户端,您可以在 Cygwin 中构建它,并将其与任何所需的 DLL 捆绑在一起分发。

答案3

你可以很轻松地通过 ssh 操作 rsync。rsync 可以为你提供差异和惰性复制,而 ssh 可以用于安全传输 - 我确信两者都有可用的 cygnus 版本。rsync+ssh 是一种非常广泛使用的组合,但我的印象是 unisonhttp://www.cis.upenn.edu/~bcpierce/unison/可能更适合你的情况。

祝你好运!

相关内容