處理Linux系統下已刪除文件繼續佔用空間問題

在Linux中,當咱們使用rm在linux上刪除了大文件,可是若是有進程打開了這個大文件,卻沒有關閉這個文件的句柄,那麼linux內核仍是不會釋放這個文件的磁盤空間,最後形成磁盤空間佔用100%,整個系統沒法正常運行。這種狀況下,經過df和du命令查找的磁盤空間,二者是沒法匹配的,可能df顯示磁盤100%,而du查找目錄的磁盤容量佔用卻很小。


遇到這種狀況,基本能夠判定是某些大文件被某些程序佔用了,而且這些大文件已經被刪除了,可是對應的文件句柄沒有被某些程序關閉,形成內核沒法收回這些文件佔用的空間。


那麼,如何查找那些文件被某些程序佔用呢:


lsof -n | grep deleted
COMMAND     PID      USER   FD      TYPE             DEVICE        SIZE       NODE NAME
dd        31708      higkoo    1w      REG                8,2 5523705856     429590 /data/filetest (deleted)
命令:lsof -n | grep deleted打印出全部針對已刪除文件的讀寫操做,這類操做是無效的,也正是磁盤空間莫名消失的根本緣由。
解決辦法:kill -9 PID   —-只需把進程刪掉就能釋放空間。


linux

lsof -n |grep deleted |awk -F’ ‘ ‘{printf 「kill -9 %s\n」, $2}’ > freedisk.shandroid

原文:http://www.androidstar.cn/處理linux系統下已刪除文件繼續佔用空間問題/
ide

相關文章
相關標籤/搜索