日常運(yùn)維過程中,我們經(jīng)常需要處理磁盤空間問題,當(dāng)接到告警后,第一時(shí)間會(huì)去找那些大文件,一般比如 Centos,可能大文件就是 /var/log/messages。
但有的時(shí)候,會(huì)出現(xiàn)怎么也查不到大文件的情況,通過 du 查找的時(shí)候,統(tǒng)計(jì)出來的大小,跟 df 顯示的占用空間對應(yīng)不上。
如果通過 df -i 查看inode沒有滿的話,那么極有可能,是有大文件被直接rm了,但是仍然有進(jìn)程打開了這個(gè)文件。
這種情況,由于進(jìn)程沒有退出,因此文件占用的空間并不會(huì)釋放;直到進(jìn)程退出,磁盤空間才會(huì)真正釋放。
如何找到是哪個(gè)進(jìn)程打開了該文件
Linux上,由于進(jìn)程仍然存活,因此可以通過查看所有進(jìn)程打開的 fd,如果該文件已經(jīng)被刪除,則查看時(shí),會(huì)顯示(deleted)。
示例如下:
如何避免這種情況
不要直接刪除該文件,而是通過將文件 truncate 的方式,釋放磁盤空間。
一種方式是:
cat /dev/null 》 ${filename}
或者(新get!)
: 》 ${filename}
如此,可以快速釋放空間。
責(zé)編AJX
-
Linux
+關(guān)注
關(guān)注
87文章
11171瀏覽量
208478 -
磁盤
+關(guān)注
關(guān)注
1文章
356瀏覽量
25138 -
文件
+關(guān)注
關(guān)注
1文章
555瀏覽量
24639
發(fā)布評論請先 登錄
相關(guān)推薦
評論