Linux系统中df与du命令查看分区大小
一. df:檢查文件系統占用磁盤情況
? ? disk free的縮寫,使用 statfs 系統調用,直接讀取分區的超級塊信息獲取分區使用情況。它的數據是基于分區元數據的,所以只能針對整個分區。由于 df 直接讀取超級塊,所以運行速度不受文件多少影響。
二. du:檢查目錄占用磁盤情況
? ? disk usage 的縮寫,du 命令會對統計文件逐個調用 fstat 系統調用,獲取文件大小。它的數據是基于文件獲取的,所以有很大的靈活性,不一定非要針對一個分區,可以跨越多個分區操作。如果統計的目錄中文件很多,du 速度就會變慢。
三. df和du的區別? ??
? ? ?當一個文件被刪除后,在文件系統目錄中已經不見了,所以 du 不會再統計。然而如果此時還有運行的進程持有這個已經被刪除的文件的句柄,這個文件就不會真正在磁盤中刪除, 分區超級塊中的信息也不會更改。這樣 df 仍舊會統計這個被刪除的文件。
? ? 正常情況下兩條命令看到的磁盤占用情況應該一致,什么情況下會出現結果不一致的情況呢?下面給大家分享在項目中遇到的問題;
設備分區滿了,什么情況?趕緊看看什么原因:
先看看目錄大小:
再看看文件大小,原來是log文件:
刪除文件:
這下恢復了吧?
what?使用df查看/run/user/1000分區的使用率還是100%:
可使用du查看文件夾的大小明明只有28K啊:
怎么辦?
lsof查看被刪除的文件被打開的情況:
確認進程:
殺掉進程:
df查看分區空間正常:
以上設備截圖為舉例,在實際的項目開發過程中,有很多日志需要處理,如系統引擎日志、nginx日志、各類開源軟件日志等。對日志的大小都需要進行管理。在刪除舊日志時,很可能就會遇到這個問題。
問題解決方法:
總結
以上是生活随笔為你收集整理的Linux系统中df与du命令查看分区大小的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Neutron 分布式虚拟路由(Neut
- 下一篇: ARM 虚拟化技术简介