瀏覽量:85次
日常運(yùn)維過程中,我們經(jīng)常需要處理磁盤空間問題,當(dāng)接到告警后,第一時間會去找那些大文件,一般比如 Centos,可能大文件就是 /var/log/messages。
但有的時候,會出現(xiàn)怎么也查不到大文件的情況,通過 du 查找的時候,統(tǒng)計出來的大小,跟 df 顯示的占用空間對應(yīng)不上。
如果通過 df -i 查看inode沒有滿的話,那么極有可能,是有大文件被直接rm了,但是仍然有進(jìn)程打開了這個文件。
這種情況,由于進(jìn)程沒有退出,因此文件占用的空間并不會釋放;直到進(jìn)程退出,磁盤空間才會真正釋放。
如何找到是哪個進(jìn)程打開了該文件Linux上,由于進(jìn)程仍然存活,因此可以通過查看所有進(jìn)程打開的 fd,如果該文件已經(jīng)被刪除,則查看時,會顯示(deleted)。
示例如下:
$sudofind/proc/*/fd-ls|grep'(deleted)'3886090lrwx------1zerotier-onezerotier-one64Aug2100:19/proc/29400/fd/4->/tmp/ibpX85Vd\(deleted)3886100lrwx------1zerotier-onezerotier-one64Aug2100:19/proc/29400/fd/5->/tmp/ibCwAgAj\(deleted)3886110lrwx------1zerotier-onezerotier-one64Aug2100:19/proc/29400/fd/6->/tmp/ibRZ5rep\(deleted)3886120lrwx------1zerotier-onezerotier-one64Aug2100:19/proc/29400/fd/7->/tmp/ibBuNEzA\(deleted)3886160lrwx------1zerotier-onezerotier-one64Aug2100:19/proc/29400/fd/11->/tmp/ibG68kpG\(deleted)如何避免這種情況不要直接刪除該文件,而是通過將文件 truncate 的方式,釋放磁盤空間。
一種方式是:
cat/dev/null>${filename}或者(新get?。?/p>:>${filename}
如此,可以快速釋放空間。
參考文檔Find and remove large files that are open but have been deleted[聲明]本網(wǎng)轉(zhuǎn)載網(wǎng)絡(luò)媒體稿件是為了傳播更多的信息,此類稿件不代表本網(wǎng)觀點(diǎn),本網(wǎng)不承擔(dān)此類稿件侵權(quán)行為的連帶責(zé)任。故此,如果您發(fā)現(xiàn)本網(wǎng)站的內(nèi)容侵犯了您的版權(quán),請您的相關(guān)內(nèi)容發(fā)至此郵箱【779898168@qq.com】,我們在確認(rèn)后,會立即刪除,保證您的版權(quán)。
官網(wǎng)優(yōu)化
整站優(yōu)化
渠道代理
400-655-5776