rsync – 可靠的文件复制(移动)过程 – 主要是Unix / Linux
简短说明:我们需要一个坚如磐石的可靠文件移动器流程.我们有源目录经常写入我们需要移动文件.这些文件成对出现 – 一个大的二进制文件和一个小的
XML索引.我们得到一个定义这些文件包的CTL文件.一旦进入目标目录,就有一个进程对文件进行操作;当它完成时摆脱它们. rsync会做得最好吗,还是我们需要变得更复杂?长篇故事如下:
我们有多个来源:Windows机器上有一组目录(确实有Cygwin和SSH守护进程),一组SFTP服务器上有一大堆目录(其中大多数也是Windows).我们的目标是AIX服务器上的目录列表. 我们曾经在Windows / Cygwin机器上使用非常可靠的Perl脚本,因为它是我们唯一的来源.但是,我们正在努力摆脱那台机器,现在还有其他来源,SFTP服务器,我们目前无法运行我们自己的脚本. 出于安全原因,我们无法在AIX服务器上运行复制作业 – 它们无法访问源服务器.我们目前在Linux机器上有一个自行开发的Java程序,它使用SFTP从各种新的SFTP源目录,复制到本地tmp目录,验证一切都存在,然后将其复制到AIX机器,然后删除文件来自消息来源.但是,我们发现任何数量的错误或处理不当的错误检查.我们都不是Java专家,因此修复/改进这可能很困难. 对我们的担忧是: >使用远程源(SFTP),rsync会留下任何仍在写入的文件吗?其中一些文件很大. 如果你看到这个,你会编写一些rsync吗?或者你会建立或购买一个工具,如果是这样,它会是什么(或者它将使用什么技术?)我(和我的团队中的其他人)在Perl上都很不错. 解决方法
编辑:Rsync执行端到端检查:文件传输后,它计算目标上该文件的校验和,并将其与源上的校验和进行比较.当校验和匹配时,它才宣告传输成功.这反映在最终退出状态代码中 – 如果所有传输的文件都通过了测试,则退出代码将为0(成功).
在类似的设置中,我编写了基于rsync的自己的解决方案.它用于夜间备份,我们不会自动删除文件. 为了解决您的一些问题: > Rsync从不修改源端的任何内容(除非使用–remove-source-files选项). 基本上你需要在脚本中处理一些事情.主要是:在成功传输时收集退出状态,一些统计信息和删除源文件. 您可以信任rsync的退出状态,即所有请求的文件都已转移,但您应该考虑在您在源计算机上删除它们之前,您对脚本提供了多少rsync以及正确的文件(源目录).在您的脚本自动删除文件之前,可能在源上然后在目标上计算带有find的文件(然后检查这些数字是否匹配)将是一个很好的最终检查. 给它10到20次尝试来开发和测试你的脚本.您需要在Windows计算机上安装带有rsync和ssh客户端的Cygwin. 通过准确了解它的工作原理,对这样的应用程序感到很有信心.我从来没有使用过商业备份软件 – 但是如果你能找到一个坚如磐石的软件并且信任它 – 那就去吧 – 它可以为你节省很多时间. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |