我最近已经实现了一个新的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上我错过了什么?
提前致谢!
答案 0 :(得分:0)
感谢任何想要帮助的人,我找到了问题的根本原因。 对于任何面临遗留系统类似问题的人, 检查导出NFS挂载的存储是否使用64位文件描述符。 就我而言,在存储上切换到32位文件描述符解决了这个问题。
答案 1 :(得分:0)
使用Perl时遇到了类似的问题。
已安装的nfs目录的perms为775,所有权为0:788
运行Perl的帐户的主要GID为402,同时也是788的成员。
指示的错误消息"不存在或不是目录"
我将活动帐户的主要组更改为788,然后开始工作。
只是希望阻止别人撕掉他们最后留下的头发。