一次Linux磁碟空間清理的經歷

2021-06-13 07:42:53 字數 1823 閱讀 8966

最近,在linux上執行bpm應用總是報沒有空間的錯誤。經過一番調查和周折,終於找出了問題的癥結,並順利解決。今天,我把過程總結一下,方便自己或其他有類似問題的朋友參考。這裡不對具體命令的具體各種引數做深入介紹,網上相關文件很多。只求盡量給出涉及命令執行的具體場景。

出現磁碟滿後,第乙個執行的命令就是df,通過它檢視檔案系統的掛載情況,該命令可以給出每個檔案系統的磁碟占用情況。以期來找到使用率接近100%的檔案系統,這樣就找到了我們調查的入口點。

根據經驗,bpm應用正是在/data目錄下執行。下一步可以執行du -m /data/* | sort -nr | head -10查詢在/data目錄下,到底哪個目錄或檔案占用了大部分空間,結合自己應用的特點就能輕易定位到占用大空間的準確目錄或檔案。另外,如果你夠細心,你會發現有些掛載點空間總量 > 已使用 +  空間餘量,但有的檔案系統這個正好相等。這主要和對應的檔案系統有關係,有的檔案系統,像ext2,ext3, 為管理員預留了一部分空間作為系統管理只用。

如上圖,du命令列出了前10個占用空間最多的目錄,最左側的數字是以m為單位。憑應用經驗,我知道rdc_full_pdp目錄比較可疑。進入soa1目錄,通過ls -lh 命令進行檢視。

你肯定發現上圖中列出的對於rdc_full_pdp目錄對應的大小才559m,和之前用du命令獲得的20328m的數字差了不是一點半點。如果有這種想法,你需要了解一下目錄內容只是一組包含檔名及其對應索引節點的索引節點檔案條目。索引節點包括檔案位址,擁有者,型別,許可權,位址等資訊。乙個檔名及其所對應節點資訊加起來一般也就幾十個位元組。ls命令對於目錄的大小就是指這些索引節點條目的所佔空間總和。那麼559m的檔案節點,可想而知這裡存放了多少個檔案。

下一步,就是確定這個目錄裡的檔案是否屬於無用過時資料,我這次的場景恰恰是log資訊。如下圖示

確定這些資訊無用後,我們就可以直接把它們刪除掉。但由於檔案數量巨大不管你是用

rm ./rdc_full_pdp/*
還是

for filename in `ls ./rdc_full_pdp/*`

do rm $filename

done

或者使用萬用字元,刪除其中一部分

find ./rdc_full_pdp/ -name get_rdc_full_file_2* -exec rm {} \;
都會報引數列表過長的錯誤

這時候,我們可以使用xargs命令,將find命令的結果通過管道符作為引數傳遞給rm命令刪除與某個萬用字元匹配的記錄。

find ./rdc_full_pdp/ -name get_rdc_full_file_2* -print0 | xargs -0 rm
或者將大於兩周的檔案刪除

find ./rdc_full_pdp/ -mtime +14 -print0 | xargs -0 rm

清理Docker占用的磁碟空間

0 du hs var lib docker 命令檢視磁碟使用情況。linlf dacent sudo du hs var lib docker 237g var lib docker 1 docker system df命令,類似於linux上的df命令,用於檢視docker的磁碟使用情況 lin...

docker 清理占用的磁碟空間

硬碟空間檢視df thinode檢視df idocker占用的磁碟空間檢視docker system dfdocker system是用於管理磁碟空間的命令,docker system df,類似於df命令,專門用來檢視docker的磁碟使用情況。使用命令前要先確認是否可以刪除 刪除所有已經停止的容...

如何清理Linux伺服器磁碟空間

有時候,服務突然掛了,再次啟動卻啟動不了。一看,原來是磁碟空間被佔滿啦,那麼,怎麼清理呢。介紹如下 df h,這個命令用於檢視伺服器空間,執行後的效果圖如下 可以看到,還剩餘8g可用。du h max depth 1,這個命令用於檢視當前目錄,哪個檔案占用最大,執行效果如下 可以看到,iov那個目錄...