歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

NFS文件系統上文件的修改時間顯示問題

NFS文件系統上文件的修改時間顯示問題   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://www.2cto.com/os/201307/231894.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.
Copyright © Linux教程網 All Rights Reserved