File :: Copy报告NFS写入错误失败?

时间:2012-06-13 02:01:15

标签: perl nfs

My Perl脚本使用File :: Copy中的move函数将文件移动到NFS挂载的文件系统上。最近,一些文件返回了一个错误,导致我的脚本打印消息“移动返回0,路径名中的文件或目录不存在”。 (成功时移动返回1,错误时返回0,错误消息来自$!)

真正奇怪的是,处理文件的系统已报告它已成功处理失败的文件!我之前从未见过成功写入的错误消息,所以我想知道它是否与NFS有关。我觉得奇怪的是,在28个文件被移动的运行中,前24个文件失败,最后4个文件成功。该脚本已经运行了几个月没有错误,现在已经在两周内两次证明了这个问题。

主机在AIX上运行,但我怀疑这会有所不同。

1 个答案:

答案 0 :(得分:0)

我认为这是一个NFS问题,而不是Perl。在某些情况下,NFS可能非常奇怪。

您应该统计/读取写入的文件,而不是依赖于报告的错误。

File :: Copy :: Reliable模块使用相同的错误处理,它将失败并出现相同的错误。

表格来源:

copy( $source, $destination )
    || croak("copy_reliable($source, $destination) failed: $!");

只需将副本放入eval块,然后尝试读取/统计目标文件。

如果你非常谨慎,可以在两个文件上使用md5 / sha1哈希,以确保它们是相同的。

此致