[Linux]日志文件已刪掉磁盤(pán)空間不釋放,不重啟服務(wù)進(jìn)程的解決方法
問(wèn)題背景
服務(wù)進(jìn)程啟動(dòng)后,后臺(tái)會(huì)有寫(xiě)日志的操作,當(dāng)服務(wù)進(jìn)程還沒(méi)停掉,日志就會(huì)一直在寫(xiě),這時(shí)候手動(dòng)刪除日志,會(huì)造成日志在linux該目錄下已經(jīng)刪除,但是磁盤(pán)空間不會(huì)被釋放掉,因?yàn)閷?xiě)日志的進(jìn)程還在,所以這個(gè)磁盤(pán)的使用率還是會(huì)不斷上升,當(dāng)日志刷新的特別快更新體量特別大的時(shí)候,嚴(yán)重的就會(huì)造成系統(tǒng)其他服務(wù)異常和宕機(jī),這種情況通常重啟服務(wù)就會(huì)解決和釋放磁盤(pán)空間,但是在真正的生產(chǎn)環(huán)境,重啟服務(wù)是要按嚴(yán)格的時(shí)間窗口標(biāo)準(zhǔn)來(lái)執(zhí)行的。為了避免出現(xiàn)磁盤(pán)空間不斷激增的導(dǎo)致爆滿的問(wèn)題,又不能影響正在運(yùn)行的服務(wù),本文提供解決方法,在不重啟服務(wù)進(jìn)程的時(shí)候,釋放磁盤(pán)空間,同時(shí)給出日志清理的時(shí)候的操作建議。
問(wèn)題分析
1、日志文件已刪掉但是空間沒(méi)被釋放,原因是后臺(tái)進(jìn)程還在運(yùn)行
ps -ef | grep "進(jìn)程名"
會(huì)看到當(dāng)前進(jìn)程還存在。
2、查看文件系統(tǒng)的磁盤(pán)使用空間,會(huì)發(fā)現(xiàn)日志文件所在的磁盤(pán)目錄的使用率會(huì)穩(wěn)定上升
df -h
證明文件雖然已經(jīng)刪掉,但是后臺(tái)進(jìn)程還在不斷寫(xiě)日志。
問(wèn)題解決
1、進(jìn)入root用戶,或者使用root用戶的linux窗口
su - root
2、進(jìn)入linux的進(jìn)程目錄。linux本身是個(gè)文件系統(tǒng),這個(gè)目錄包含了linux所有的進(jìn)程的信息,有進(jìn)程的啟動(dòng)目錄,進(jìn)程操作的軟連接等
cd /proc/
3、根據(jù)上面ps -ef顯示的進(jìn)程號(hào),進(jìn)入/proc/進(jìn)程號(hào)/fd 目錄
cd /proc/進(jìn)程號(hào)/fd
4、確認(rèn)已經(jīng)進(jìn)入進(jìn)程的fd目錄
pwd
截圖如下:
5、該進(jìn)程的fd目錄下會(huì)有該進(jìn)程寫(xiě)日志的軟連接,可以查看該軟連接的鏈接名,其中wlproxy是刪掉的日志名縮寫(xiě)
ls -al | grep wlproxy
結(jié)果如下圖,會(huì)出現(xiàn)一個(gè)包含(deleted)結(jié)尾的軟連接,意思是這個(gè)文件已經(jīng)刪掉了,但是寫(xiě)這個(gè)文件的軟連接還存在,進(jìn)程也還存在,此時(shí)軟連接的名字是799,路徑是在/proc/進(jìn)程號(hào)/fd 目錄下。
6、這時(shí)候如果需要釋放磁盤(pán)空間,可以選擇清空該軟連接,因?yàn)檐涍B接會(huì)定向到這個(gè)linux底層的文件
echo "" > 799
如果文件表較大的話稍等片刻,該日志文件就會(huì)在不重啟的前提下清理干凈
7、此時(shí)再檢查磁盤(pán)使用率df -h,就回發(fā)現(xiàn)磁盤(pán)空間已經(jīng)降下來(lái),這時(shí)候還要檢查一下服務(wù)是否還在正常運(yùn)行,因?yàn)樽畛蹙褪菫榱瞬挥绊懛?wù)運(yùn)行才會(huì)不重啟進(jìn)行誤刪后的日志清理操作。
問(wèn)題復(fù)盤(pán)和問(wèn)題避免
之所以要選擇復(fù)雜的方式清理日志文件,是因?yàn)檫\(yùn)維人員在清理日志文件的時(shí)候直接選擇了刪除的方式,但是服務(wù)進(jìn)程是一直在線上運(yùn)行的,這是忽略了根本的可觀因素,日志文件等于沒(méi)有刪成功,還占用了大量的磁盤(pán)空間。規(guī)避這種問(wèn)題的方法是:清理過(guò)期日志時(shí),使用echo “” > xxxx.log的方式清空掉文件,而不是直接rm掉該文件,因?yàn)榫退愣嘁稽c(diǎn)文件名在該日志目錄也不會(huì)有太大問(wèn)題,但是磁盤(pán)空間不會(huì)因?yàn)槿罩疚募籸m而被釋放掉,反而會(huì)造成更大的問(wèn)題
問(wèn)題延伸
查看更多的這種被刪除的空間還沒(méi)被釋放掉的日志文件。也可以用root用戶遍歷/proc目錄,不過(guò)root操作需要謹(jǐn)慎,建議所有操作都在測(cè)試環(huán)境或者測(cè)試機(jī)器測(cè)試驗(yàn)證過(guò)沒(méi)問(wèn)題后再來(lái)執(zhí)行(以上以下都是)。重定向輸出ls -R的查詢結(jié)果到一個(gè)有可觀磁盤(pán)空間的目錄的txt,然后vi編輯txt后查找包含(deleted)結(jié)尾的結(jié)果,文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-648095.html
ls -R -al /proc > /data/t1.txt
再根據(jù)實(shí)際情況分析和斟酌需不要清空釋放這些被刪掉的文件所占用的空間文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-648095.html
創(chuàng)作不易,且看且珍惜,如果該文章給您帶來(lái)了幫助,請(qǐng)麻煩您點(diǎn)一下關(guān)注,各位看官的支持,是本人持續(xù)創(chuàng)作最好最大的動(dòng)力!
到了這里,關(guān)于[Linux]日志文件已刪掉磁盤(pán)空間不釋放,不重啟服務(wù)進(jìn)程的解決方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!