Linux為什麼
為什麼 df
和 du
在 Ubuntu 18.04 上報告可用空間不同?
為什麼這兩個命令報告可用空間的方式如此不同?這種情況從去年開始不時在幾個 Ubuntu 18.04 虛擬機上發生。
df
報告 100% 已使用,而du -smh
僅顯示 4.0G(總)中的 2.3G 在使用中。當系統日誌伺服器停機進行維護時,通常會出現錯誤消息
rsyslog
或syslog-ng
填充錯誤消息。/var
# df -mh /var Filesystem Size Used Avail Use% Mounted on /dev/mapper/new_vg-var 4.0G 3.9G 0 100% /var # du -smh /var 2.3G /var # fuser /var
df 大於 du 的最常見原因:
您沒有
du
在整個文件系統上執行。
- 您沒有對所有目錄的訪問權限。
- 你做了類似的事情
du -s /filesystem/*
,你錯過了頂部的點文件。重新執行為du -sx /filesystem
- (罕見)您已經用另一個掛載遮蔽了一些文件系統。通過安裝在上面,
du
無法到達文件來確定大小。可以通過解除安裝陰影文件系統或通常使用原始文件系統的循環安裝來調整它們的大小。您的文件仍處於打開狀態,但已被刪除。
du
無法再訪問它們以進行閱讀,但它們仍然佔用空間。嘗試lsof +aL1 /filesystem
查找孤立文件和保持它們打開的程序。當程序關閉文件時,空間將被釋放。df 小於 du 的最常見原因:
- 裡面安裝了一個額外的文件系統,你
du
正在下降到它併計算那個空間。重新執行為du -sx /filesystem