linux系統df和du命令的區別


發現一台用戶的電腦,df檢查出來的/磁盤空間占用了16G,比用du查看得到的磁盤空間大的多,du查看/下所有程序目錄加起來還不到5G。這是什么原因呢?

即便是有隱藏文件,查了也很小啊。
 
因為df和du的統計機制不一樣。
du會把指定目錄下所有文件、目錄、目錄下的文件都統計。是建立在文件系統能看到的的確確是有這樣一些文件的基礎上的。也就是說我們能在文件系統里面看到的文件才會被du統計。
 
df(df命令通過查看文件系統磁盤塊分配圖得出總塊數與剩余塊數。):
這要從程序寫文件的方式來談起,一個進程要向一個文件里面寫東西,那么會得到一個pointer,
然后向指針指向的文件(磁盤區域)寫入。假如由於某些原因(也可能人為)被指向的文件被刪除了,但是( write call)並不知道文件是否還在,就還會繼續向里面寫,不管文件是否存在,磁盤塊還是被寫操作使用。
於是因為文件沒有了,所以du統計不到寫入的這些磁盤塊,但是因為寫的進程還在,磁盤空間沒有被釋放,所以df卻能統計到,所以df統計的結果比du大很多。
如何解決呢?
1.停止系統上的程序。
2.如果還是不行,unmount一下文件系統看看
3.重啟系統


免責聲明!

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



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