当可存储文件通过SCP传输时,错误“可存储文件的幻数检查失败”

时间:2014-09-16 19:08:08

标签: perl storable

我有一个基本代码,它将哈希存储在文件中。

store \%hash 'file';
retrieve ('file');

不同之处在于,文件通过SCP传输到另一台机器并在那里检索。在检索时,我收到此错误"对可存储文件的魔术数检查失败"。我试过" nstore"也是如此,但同样的错误也失败了。

SCP是腐败文件中的罪魁祸首吗?我查看了它看起来与我相同的文件! 有什么需要我特别注意的吗?还有什么建议吗?

1 个答案:

答案 0 :(得分:0)

需要检查两件事:

  1. 检索完成后,该文件应由与运行检索代码的用户相同的用户拥有。即使当前的uid具有该文件的读取权限,不同的uid也会产生问题。因此,请在检索用户下复制文件或使用chown。
  2. 检查两台机器中的可存储版本。虽然可存储是向后兼容的。
  3. EDIT ::

    1. 所有权并未造成失败。复制到不同的文件虽然为我工作。所以怀疑我的代码中的锁定问题(而不是所有权)。我有一个inotify目录。这可能是罪魁祸首,因为Storable.pm中的pretrieve()失败了。