寻找一种不锁定被复制文件的方法来复制文件

寻找一种不锁定被复制文件的方法来复制文件

我正在将来自不同来源的数据汇总在一起,这些来源位于一个由各种版本的 Windows (xp/7) 和一个 Linux (centos) 组成的混合环境中。数据可通过网络共享获取。数据由每个位置的不同软件生成,以不同的间隔创建和附加到文件。大多数数据源都是封闭系统,我没有管理权限,这确实使情况变得复杂。

我需要定期连接到网络共享并将数据收集到一个中心位置,用于进一步分发。数据会每周 7 天、每天 24 小时生成和收集,每次持续数周。这将从 Windows 2008 服务器计算机运行。

我在组织这项工作时遇到的唯一麻烦是从远程源复制文件而不锁定文件。我最初使用 robocopy 设置了一个运行良好的系统,直到我的测试发现,如果数据源软件试图附加到当前正在复制的文件中,它将失败。

不幸的是,使用 vss 不是一个选择,因为它们不是共享的卷。

因此,我正在寻找某种复制文件的方法,这种方法在复制过程中不会锁定文件。我通过检查复制前后的修改时间和大小来处理文件,并标记有差异的文件。没有最新的文件不是问题,但源头的数据丢失才是问题。

我研究过各种备份软件解决方案,但我测试过的所有软件在无法使用 vss 时仍然会锁定文件。

我不想为了一件非常简单的事情而必须实现自己的文件复制软件。

答案1

不知道复制可以做你想做的事,所以你可能想读一篇关于它的文章访问锁定的文件。否则,它听起来就像是强化版的 XCOPY(和 RoboCopy)。商业用途不免费,尽管它仍然受到支持(最新版本于 2013 年 12 月 27 日发布)

补充:文档说XXCOPY本身在复制文件时不会锁定文件。

答案2

文件复制程序声称可以做到这一点,但它相当老旧(2004 年),所以我不知道它是否适合您。此外,不清楚在网络共享上使用时复制是否保持非阻塞。

当然,进行非阻塞复制非常危险,这就是为什么大多数实用程序不支持它的原因。如果主应用程序在您复制时更新文件,则您最终可能会得到损坏的副本。

答案3

只是为了添加另一个选项,我发现快速复制以共享读/写模式复制文件。

它似乎相当成熟,自 2004 年就已经存在,并且根据 BSD 许可证开源这里。这似乎是一个很好的选择,因为 XXCOPY 提供的所有额外功能并不是必需的。

答案4

尝试 shadowspawn (使用 robocopy)。效果相当不错。

暗影生物

编辑:我刚意识到这已经是两年前的事了。抱歉!

相关内容