我们的部门在客户从另一个软件供应商切换到我们时进行数据迁移,我们通常需要获得他们的旧数据(不pipe可能是什么)的副本并将其发送给我们。
我们面临的巨大挑战是一些系统将有数十万个文件(主要是文档/图像库),整个集合可能在十几兆字节的大小。 我们在转换过程开始时获取他们的数据副本,然后我们在安装之前抓取第二套,这可能在几个月后。
我们正在寻找更好的解决scheme来上传第二组数据。 目前主要的方法是创build一个大的整个目录的zip文件和FTP(通过一个只写帐户)到我们的服务器,这当然有一个很大的开销,由于大部分文件可能没有改变分享最初的数据抓取。
像rsync这样的工具看起来像是一个完美的解决scheme,但从我研究的内容来看,没有简单的方法来像“FTP”那样只写一个帐户。 防止未经授权下载另一个客户的数据是上级关注的重点。
总之,我应该使用哪种工具来满足这些要求:
BITS来上传,但是我们发现相当多的XP时代机器无法正常工作。 我们使用的任何客户端都需要在任何Windows XP SP2或更新版本上运行99%的时间。 目前的先行者是rsync和编写某种用户pipe理器,可以在每个客户端的rsync服务器上创build一个单独的用户帐户,但我相信还有其他选项,我不知道哪些可能更适合。
海事组织,你已经描述的解决scheme是你最好的select。 为了满足第一个要求,每个客户端的独立帐户是我能想到的唯一方法,并且使用rsync密钥(而不是密码)可以帮助实现这一点。 Rsync本身解决了其他问题。
在提出这个问题之后做了更多的研究之后,我想我find了一个符合所有标准的解决schemerdiff 。
所有需要完成的工作是编写一个包装程序,作为rdiff.exe , cygwin1.dll和cygpopt-0.dll自提取程序,然后为相关的rdiff操作提供一个易于使用的GUI界面。
这样做之后,我们只是在执行初始zip之前创build一个签名文件,并将其保存在文件中。 一旦第二次传输即将发生,我们使用该原始签名文件来生成diff,并仅将diff上传到FTP服务器。