記一次磁盤容量報警的排查心得。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
xargs默認會將空白符、換行符轉化爲空白符,因此上面的"file 1.xml"就會被解析成爲file、1.xml兩個文件了。class
而爲了不這種問題就提供了自定'\0'來替換find命令的默認換行符,xargs在解析的時候一樣經過'\0'來進行反解析因此就能獲得正常的輸出
固然在進行大文件查找的時候可能會有很是多的文件,而須要結合sort head
等命令來進行排序.
這裏用到了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行數據
用上面命令統計結果。將*.xml
換成*.java
不就統計出來java代碼的行數了嘛。