作为管道的一部分,Robocopy 在网络上

作为管道的一部分,Robocopy 在网络上

我有以下管道:

  • [其他供应商] 将文件发送到我的 Windows 文件系统,这些文件从下一个未使用的数字开始编入索引(通常为 file.001)
  • 我使用 RoboCopy 将文件移动到我的 Unix 文件系统并对其进行处理。处理后,我删除了这些文件。因此,这些文件仅用于传输数据。

问题是:在缓慢处理文件时,[其他供应商] 可能会发送新文件(从 file.001 重新开始),然后 RoboCopy 会用较新的文件替换我的 Unix 系统上的文件(这是 RoboCopy 预期的行为)。

有什么方法可以抑制这种行为吗?比如“将文件 .001 留在 Windows 文件系统上,然后过一分钟再试一次”?

伊迪丝:

通常情况下:

  • Windows:空 Unix:空 => 文件传送
  • Windows:file.001 Unix:empty => Robocopy
  • Windows:empty Unix:file.001 => 缓慢处理数据库
  • Windows:空 Unix:空

问题在于:

  • Windows:空 Unix:空 => 文件传送
  • Windows:file.001 Unix:empty => Robocopy
  • Windows:empty Unix:file.001 => 缓慢处理数据库和 FileDelivery
  • Windows:file.001 Unix:file.001 => 不要移动 file.001(但可以移动其他文件)

robocopy c:\data\ r:\data\ *. * /XN /MOV /R:100 /W:30 /MON:1 正在替换 unix:file.001,即使它存在

伊迪丝希望我补充一点:

也许问题在于不同的“文件系统”/管理级别。一个是 netlink(老版 samba),另一个是 zfs。这两个“系统”(抱歉,我对网络技术一无所知,所以我的术语可能不对)似乎都在内存中保存自己的 inode 目录,因此一个无法识别更改,另一个文件系统正在对目录执行操作。

答案1

我认为 /xo /xn 开关不会替换同名的旧文件或新文件。然后设置一个计划任务,每隔 5 分钟运行一次,然后再试一次

相关内容