免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3238 | 回复: 0
打印 上一主题 下一主题

NFS文件系统上文件的修改时间显示问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-08-25 14:58 |只看该作者 |倒序浏览
Solaris + NetApp存储,用户的home目录放在NetApp上,通过autofs挂到本地。发现在用户各自的home目录下touch文件后用ls -l查看,mtime(modify time)一列只显示年月日,不显示时分。
$ touch file
$ ls -l file

-rw-r--r--   1 user  user        0 Aug 25  2009 file

等了十几分钟后,再次ls查看,能够看到时分了,但显示的时间并不是原来执行touch的时间,而是向后推迟了十几分钟。
$ ls -l file
-rw-r--r--   1 user  user        0 Aug 25 13:22 file

在Solaris 10的系统上,重新touch文件file,并立即用ls -e(-e选项可显示时间到秒)查看文件mtime的时分秒信息,可以看到显示出了具体的mtime时间。
$ touch file
$ ls -e file

-rw-r--r--   1 user  user        0 Aug 25 13:24:09 2009 file

然后立即用date看了一下本地时间
$ date
Tue Aug 25 13:09:22 CST 2009

发现文件的mtime时间比本地时间早了十几分钟,而前面测试的第二步里所等待的十几分钟,正好是这个时间差。
所以,判断是NetApp存储上的时间与Solaris系统的时间不同步,导致了这一问题。
得到该结论后又做了一下测试,发现,只要NetApp的时间比本地时间早,那么在touch之后ls -l查看都是不能够显示时分信息的;如果NetApp的时间比本地时间晚,则能够显示时分信息,但是所显示的时分信息不是本地的touch时间,而是NetApp上的时间。
所以,NFS文件系统中文件和目录显示的时间以NFS所在的主机时间为准,并且在NFS主机时间比本地主机提前的情况下,创建文件后不能够立即显示时分信息。要杜绝这一问题,应尽量让NFS主机和本地主机的时间保持同步。

设置时间同步的方法见
http://blog.chinaunix.net/u2/80598/showart_2036630.html

但有个问题想不通,既然不让ls -l显示比本地时间提前的mtime,那为什么在Solaris 10中ls -e这个选项又让它能显示了呢?而man ls中描述-e选项仅仅如下:
The same as -l, except displays time to the second, and with one format for all files regardless of age: mmm dd hh:mm:ss yyyy.


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/80598/showart_2036637.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP