linux清理整个磁盘空间,一次Linux磁盘空间清理的经历
最近,在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
總結
以上是生活随笔為你收集整理的linux清理整个磁盘空间,一次Linux磁盘空间清理的经历的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 读保护_混合ASIL系统中不同安全等级模
- 下一篇: MySQL的乱码解决方案