Perl 5.005_03无法识别NFS文件存在

时间:2017-02-22 15:00:07

标签: linux perl nfs netapp

我最近已经实现了一个新的NAS文件管理器,并在安装之后 它在Linux服务器上,Perl解释器(版本5.005_03)无法使用 识别该挂载文件的存在:

[root@server ~]# stat /newmount/testfile 
  File: `/newmount/testfile'
  Size: 0               Blocks: 0          IO Block: 65536  regular empty file
Device: 48h/72d Inode: 9262698097446760736  Links: 1
Access: (0644/-rw-r--r--)  Uid: (  500/ testuser)   Gid: (   500/      testuser)
Access: 2017-02-22 16:44:21.218314000 +0200
Modify: 2017-02-22 16:44:21.218314000 +0200
Change: 2017-02-22 16:44:21.218314000 +0200


[root@server ~]# perl -e 'print "File Exists\n" if -e "/newmount/testfile";'
[root@server ~]#

这里有趣的是:

当我尝试更新版本的时候 解释器(如perl,v5.8.8)有效:

[root@server ~]# perl -e 'print "File Exists\n" if -e "/newmount/testfile";'                 
File Exists
[root@server ~]# 

旧Perl上我错过了什么?

提前致谢!

2 个答案:

答案 0 :(得分:0)

感谢任何想要帮助的人,我找到了问题的根本原因。 对于任何面临遗留系统类似问题的人, 检查导出NFS挂载的存储是否使用64位文件描述符。 就我而言,在存储上切换到32位文件描述符解决了这个问题。

答案 1 :(得分:0)

使用Perl时遇到了类似的问题。

已安装的nfs目录的perms为775,所有权为0:788

运行Perl的帐户的主要GID为402,同时也是788的成员。

指示的错误消息"不存在或不是目录"

我将活动帐户的主要组更改为788,然后开始工作。

只是希望阻止别人撕掉他们最后留下的头发。