并发 samba 写入和 perl 移动的安全性

并发 samba 写入和 perl 移动的安全性

我在 SLES11 服务器上运行了 samba (3.6.3-0.30.1-2920-SUSE-CODE11-x86_64),该服务器从 Windows 计算机接收文件。samba 共享实际上是从其他服务器挂载的 NFS,我需要strict locking = no在其中使用smb.conf

由于我无法控制的原因,这些文件以非常浅的目录结构推送。然后,我需要将这些文件从源移动到共享上具有更深目录结构的其他目标(基本上是拆分、匹配和添加日期)。我创建了一个 perl 脚本(v5.10.0),它可以检测这些源文件,确定目标,然后使用 函数将文件移动到其move目标File::Copy

我的文件会损坏吗?这些文件相当小,但数量很多,所以这种情况并非完全不可能。文件会损坏吗?还是 samba 会继续写入新位置,甚至不会看到文件正在移动?或者它File::Copy知道该文件正在使用中并将中止脚本?(我使用move($src, $dst) or die "Cannot move file $src to $dst: $!"

更一般地说,这种处理情况的方式是否安全或者有更好的方式吗?

答案1

move我对非常大的文件进行了一些测试,尽管在写入文件之前调用了,但结果还是正确。我想这代表了答案是肯定的。

相关内容