今天上午查看磁盤空間,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的命令,結果大致相同.