Linux磁盤容量佔比

記一次磁盤容量報警的排查心得。java

收到磁盤報警提示某個目錄下已佔用85%的存儲空間,對於開發來講這個時候就會要去看下具體是些什麼文件佔用了磁盤空間,在排查的過程當中用到的相關命令記錄在此。spa

一、文件系統空間使用狀況code

df -h查看全部的文件系統空間使用狀況。xml

二、肯定是目錄下哪些文件佔用的空間比較多
find /data -type f -size +800M -print0 | xargs -0 ls -lh查看佔用空間大於800M的文件列表。排序

xargs從stdin讀入數據,而|管道操做符是將前一個命令的輸出做爲後一個命令的輸入。ip

echo "--help" | cat
echo "--help"| xargs cat

經過這兩個命令就能看出xargs和管道操做命令的區別了。開發

這裏須要說明下-print0和xargs -0這兩個參數:文檔

默認狀況下-print會對每一個文件進行換行輸出,it

clipboard.png

xargs默認會將空白符、換行符轉化爲空白符,因此上面的"file 1.xml"就會被解析成爲file、1.xml兩個文件了。class

clipboard.png

而爲了不這種問題就提供了自定'\0'來替換find命令的默認換行符,xargs在解析的時候一樣經過'\0'來進行反解析因此就能獲得正常的輸出

clipboard.png

固然在進行大文件查找的時候可能會有很是多的文件,而須要結合sort head等命令來進行排序.

clipboard.png

這裏用到了du(disk usage)其實最主要是利用他的-m參數來使文件大小更易讀的方式進行排序(單位爲1M)。

三、du
上面提到du這個命令,其實主要是查看文件夾佔用的容量大小,加上-a參數也能查看文件佔用的容量。具體能夠在使用的過程當中查看幫助文檔。

四、代碼行數統計
咱們常常會好奇寫了多少行的代碼,這時find xargs命令就派上用場了
find . -type f -name "*.xml" -print0 | xargs -0 wc -l | awk -F " " '{sum+=$0};END {print sum}'

"file 1.xml"文件中有5行數據
clipboard.png

用上面命令統計結果。將*.xml換成*.java不就統計出來java代碼的行數了嘛。
clipboard.png

相關文章
相關標籤/搜索