小編給大家分享一下怎么在Linux下快速找到被刪除的文件,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
在丹東等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供網(wǎng)站設計制作、網(wǎng)站設計 網(wǎng)站設計制作按需定制網(wǎng)站,公司網(wǎng)站建設,企業(yè)網(wǎng)站建設,品牌網(wǎng)站建設,營銷型網(wǎng)站,成都外貿(mào)網(wǎng)站制作,丹東網(wǎng)站建設費用合理。日常運維過程中,我們經(jīng)常需要處理磁盤空間問題,當接到告警后,第一時間會去找那些大文件,一般比如 Centos,可能大文件就是 /var/log/messages。
但有的時候,會出現(xiàn)怎么也查不到大文件的情況,通過 du 查找的時候,統(tǒng)計出來的大小,跟 df 顯示的占用空間對應不上。
如果通過 df -i 查看inode沒有滿的話,那么極有可能,是有大文件被直接rm了,但是仍然有進程打開了這個文件。
這種情況,由于進程沒有退出,因此文件占用的空間并不會釋放;直到進程退出,磁盤空間才會真正釋放。
如何找到是哪個進程打開了該文件
Linux上,由于進程仍然存活,因此可以通過查看所有進程打開的 fd,如果該文件已經(jīng)被刪除,則查看時,會顯示(deleted)。
示例如下:
$ sudo find /proc/*/fd -ls | grep '(deleted)'
388609 0 lrwx------ 1 zerotier-one zerotier-one 64 Aug 21 00:19 /proc/29400/fd/4 -> /tmp/ibpX85Vd\ (deleted)
388610 0 lrwx------ 1 zerotier-one zerotier-one 64 Aug 21 00:19 /proc/29400/fd/5 -> /tmp/ibCwAgAj\ (deleted)
388611 0 lrwx------ 1 zerotier-one zerotier-one 64 Aug 21 00:19 /proc/29400/fd/6 -> /tmp/ibRZ5rep\ (deleted)
388612 0 lrwx------ 1 zerotier-one zerotier-one 64 Aug 21 00:19 /proc/29400/fd/7 -> /tmp/ibBuNEzA\ (deleted)
388616 0 lrwx------ 1 zerotier-one zerotier-one 64 Aug 21 00:19 /proc/29400/fd/11 -> /tmp/ibG68kpG\ (deleted)
如何避免這種情況
不要直接刪除該文件,而是通過將文件 truncate 的方式,釋放磁盤空間。
一種方式是:
cat /dev/null > ${filename}
或者(新get!)
: > ${filename}
如此,可以快速釋放空間。
以上是“怎么在Linux下快速找到被刪除的文件”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
原文地址:https://mp.weixin.qq.com/s?__biz=MzI3MTI2NzkxMA==&mid=2247494283&idx=1&sn=fad8fdf2e65ebfe1b4a67de904f2bedc&chksm=eac6cba2ddb142b44d9187acb37b10985c71862303c1082bc8e6f5df69881065b110dc978b29&mpshare=1&