小編給大家分享一下Linux怎么處理文件已刪除但空間不釋放,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
目前成都創(chuàng)新互聯(lián)已為超過(guò)千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)站空間、綿陽(yáng)服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計(jì)、遂平網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶(hù)導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶(hù)和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。問(wèn)題產(chǎn)生背景
一個(gè)業(yè)務(wù)系統(tǒng)的服務(wù)器監(jiān)控系統(tǒng)發(fā)來(lái)預(yù)警通知,磁盤(pán)空間使用率已經(jīng)達(dá)到90%了,然后就登陸服務(wù)器搜索了下比較大的日志文件,全部都刪除了(坑在此處埋上了),磁盤(pán)空間釋放了一些,當(dāng)時(shí)也是疏忽,沒(méi)有確認(rèn)查出并刪除的文件大小的空間是否已經(jīng)全部釋放。沒(méi)過(guò)幾天,服務(wù)器又被預(yù)警了,比較納悶,日志怎么增長(zhǎng)的這么快,排查之后發(fā)現(xiàn),原來(lái)是上次操作刪除文件后,有個(gè)較大的文件空間沒(méi)有釋放導(dǎo)致的。
問(wèn)題還原及解決辦法
找到占用空間較大的數(shù)據(jù)文件
#查看磁盤(pán)空間使用情況 $ df -h #先查詢(xún)/tmp目錄下占用空間較大的文件 $ du -sh /tmp/*|sort -nr|head -3 #在查詢(xún)/home目錄下占用空間較大的文件 $ du -sh /home/*|sort -nr|head -3 # 找到文件后,進(jìn)行刪除即可,刪除后,使用 df -h進(jìn)行查看是否已經(jīng)釋放
說(shuō)明下為啥在找文件的時(shí)候,先找了/tmp/*目錄下的文件
Linux系統(tǒng)刪除策略:Linux沒(méi)有回收站功能,所以服務(wù)去會(huì)將要?jiǎng)h除的文件都會(huì)先移動(dòng)到系統(tǒng)/tmp目錄下,然后定期清除/tmp目錄下的數(shù)據(jù)。
有好多服務(wù)器在安裝系統(tǒng)的時(shí)候沒(méi)有給/tmp進(jìn)行單獨(dú)分區(qū),所以有可能是/tmp目錄下的數(shù)據(jù)占用了很大一部分空間,可以先清除掉/tmp目錄下的文件來(lái)釋放空間。
本次出現(xiàn)刪除文件不釋放空間,是在刪除/home目錄空間下的一個(gè)dubbo服務(wù)日志文件時(shí)發(fā)生的。
刪除文件不釋放空間原因
一般情況下不會(huì)出現(xiàn)刪除文件后空間不釋放的情況,但在這個(gè)文件被進(jìn)程鎖住或者是有進(jìn)程一直往這個(gè)文件寫(xiě)數(shù)據(jù)等情況下,還是會(huì)出現(xiàn)的。了解Linux下文件的存儲(chǔ)機(jī)制和存儲(chǔ)結(jié)構(gòu)的原理就會(huì)理解這個(gè)問(wèn)題了。
文件存在Linux系統(tǒng)中分為兩部分:指針部分和數(shù)據(jù)部分。
指針部分:存在文件系統(tǒng)的meta-data中,我們執(zhí)行rm命令將數(shù)據(jù)刪除后,這個(gè)指針就從meta-data中被清除掉了。
數(shù)據(jù)部分:數(shù)據(jù)就是直接存儲(chǔ)在磁盤(pán)上了,當(dāng)指針被從meta-data中清除后,數(shù)據(jù)部分占用的空間就可以被覆蓋并寫(xiě)入新的內(nèi)容。
之所以出現(xiàn)刪除dubbo日志文件后,空間還不釋放,就是由于dubbo進(jìn)程還在一直往這個(gè)文件里面寫(xiě)數(shù)據(jù),在刪除文件的時(shí)候,指針并沒(méi)有被從meta-data中清除掉,所以日志文件還是占用著空間。
如何找到此類(lèi)文件
可以通過(guò)lsof命令獲取已經(jīng)刪除但是還被程序占用的文件列表:
lsof | grep delete
如何釋放此類(lèi)空間
解決這一類(lèi)問(wèn)題釋放空間的方法有很多種:重啟占用的進(jìn)程、重啟操作系統(tǒng)、通過(guò)命令。非生產(chǎn)環(huán)境采用前兩種方式最方便了,但是對(duì)于生產(chǎn)環(huán)境,還是盡量采用命令的方式,其實(shí)命令也很簡(jiǎn)單:
echo " " >/home/dubbo/log/xxx.log
通過(guò)這種方式,會(huì)里面釋放掉占用的磁盤(pán)空間,也不影響進(jìn)程繼續(xù)執(zhí)行。
以上是“Linux怎么處理文件已刪除但空間不釋放”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司行業(yè)資訊頻道!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線(xiàn),公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。