1

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

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

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

SCP是破坏文件的罪魁祸首吗?我查看了文件,但对我来说它看起来一样!我有什么需要特别注意的吗?还有什么建议吗?

4

1 回答 1

1

需要检查两件事:

  1. 检索完成后,该文件应与运行检索代码的用户属于同一用户。即使当前 uid 对该文件具有读取权限,不同的 uid 也会产生问题。所以在检索用户下复制文件或者使用chown。
  2. 检查两台机器中的可存储版本。尽管可存储是向后兼容的。

编辑::

  1. 所有权不是导致失败的原因。不过,复制到不同的文件对我有用。所以怀疑我的代码中的锁定问题(不是所有权)。我对该目录有一个inotify。这可能是罪魁祸首,因为 Storable.pm 中的 pretrieve() 失败了。
于 2014-09-16T21:26:09.473 回答