Linux du與df命令的差異


  今天上午查看磁盤空間,df命令查看的時候:93%,du命令查看的時候:90%.回想起昨天在用ftp傳輸過程中,rm掉文件,應該是文件雖然表明上刪除掉了,但是空間實際是未釋放的.

  由於du與df命令實施上的不同: du -s命令通過將指定文件系統中所有的目錄、符號鏈接和文件使用的塊數累加得到該文件系統使用的總塊數;而df命令通過查看文件系統磁盤塊分配圖得出總塊數與剩余塊數。文件系統分配其中的一些磁盤塊用來記錄它自身的一些數據,如i節點,磁盤分布圖,間接塊,超級塊等。這些數據對大多數用戶級的程序來說是不可見的,通常稱為Meta Data。du命令是用戶級的程序,它不考慮Meta Data,而df命令則查看文件系統的磁盤分配圖並考慮Meta Data。df命令獲得真正的文件系統數據,而du命令只查看文件系統的部分情況。
  因此,如果用戶刪除了一個正在運行的應用所打開的某個目錄下的文件,則du命令返回的值顯示出減去了該文件后的目錄的大小。但df命令並不顯示減去該文件后的大小。直到該運行的應用關閉了這個打開的文件,df返回的值才顯示出減去了該文件后的文件系統的使用情況。

  解決方案:

      #lsof|grep delete          --找到相應的進程號

      #kill <PID>

       此時,使用df與du的命令,結果大致相同.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM