1. 程式人生 > >linux磁碟空間滿了後怎麼去判定哪個地方佔了多大的空間並回收

linux磁碟空間滿了後怎麼去判定哪個地方佔了多大的空間並回收

df -h    #檢視磁碟空間佔用情況
du -s /* |sort -nr    #檢視那個目錄佔用空間大
du -h –max-depth=1    #檢視當前目錄下資料夾大小情況
lsof | grep deleted    #檢視已刪除檔案是否被程序佔用


linux裡的檔案被刪除後,空間沒有被釋放是因為在Linux系統中,通過rm或者檔案管理器刪除檔案將會從檔案系統的目錄結構上解除連結(unlink).然而如果檔案是被開啟的(有一個程序正在使用),那麼程序將仍然可以讀取該檔案,磁碟空間也一直被佔用。
解決方法:
1、先df -lh檢視一下磁碟使用狀況
2、找到被刪除檔案所在的分割槽,eg.opt分割槽
3、檢視被刪除了的所有檔案:lsof -n /opt |grep deleted
 結果如下:[

[email protected] app]# lsof -n /opt |grep delete
 sftp-serv  8195      root    5r   REG  104,6 8214888448 786452 /opt/software/resin-pro-3.1.10/log/jvm-app-a.log (deleted)
4、kill 8195
5、再執行lsof -n /opt |grep delete,應該沒上面的結果了。
6、再執行df -lh看是不是空間已經釋放了?