1. 使用 df -h 查看磁盤空間
2. 使用 du -sh * 查看每個目錄的大小
經過查看沒有發現任何大的文件夾。 繼續下面的步驟
如果您的Linux磁盤已滿,但是通過 du -sh 找不到大文件,可能是因為有一些進程正在寫入磁盤,但是這些文件已經被刪除,但是進程仍然在使用它們。這種情況下,可以使用 lsof 命令查找這些文件并殺死相關進程。以下是一些可能有用的命令:
1.查找哪些進程占用了磁盤空間:
sudo lsof | grep deleted
2.查找哪些進程占用了刪除的文件:
sudo lsof +L1
3.殺死占用已刪除文件的進程:
sudo kill -9
如果 lsof | grep deleted 的命令沒有返回結果,可以直接執行 sudo lsof +L1 命令。如下圖是我的進程占用的磁盤空間沒有釋放
直接 kill 掉進程后的磁盤空間。
在 sudo lsof +L1 命令的執行結果中,SIZE/OFF 表示已刪除文件的大小或偏移量。
當一個文件被刪除時,如果有進程仍然在使用該文件,那么該文件的磁盤空間不會立即釋放,而是被標記為“刪除”。在這種情況下,SIZE/OFF 列將顯示該文件的大小或偏移量。如果該文件當前沒有被任何進程使用,那么 SIZE/OFF 列將顯示為0。
需要注意的是,SIZE/OFF 列中顯示的大小或偏移量可能是不準確的,因為已刪除文件的大小可能會隨著進程對其進行讀寫操作而發生變化。