1. 程式人生 > >查詢大檔案 & 索引節點(inode)爆滿 解決辦法

查詢大檔案 & 索引節點(inode)爆滿 解決辦法

經常遇到磁碟滿或者檔案節點滿的情況,整理如下

查詢大檔案

  1. 查詢超過某個大小的檔案, 如1G
find . -type f -size -size +1G
  1. 查詢檔案大小的時候,現實檔案屬性
find . -type f -size -size +1G -print0 | xargs -0 ls -l
  1. 顯示具體大小並排序
find . -type f -size -size +1G -print0 | xargs -0 du -h | sort -nr

查詢大目錄並排序

du -h --max-depth=1 | sort -n

索引節點(inode)爆滿情況處理

背景

儲存裝置分為兩部分,inode和block,block存資料,inode儲存資料的資訊,系統指令通過inode迅速找到block的位置,所以,如果inode被用完,那麼即使儲存裝置還有空餘空間,仍舊無法寫入新資料。

所以,這種情況很可能是因為有大量的小檔案所致,大量的小檔案,可能存在在單個目錄下,也可能存在在大量的目錄下

少量目錄有大量小檔案

通過以下命令找出目錄(檔案越多,目錄越大)

find / -type d -size +10M

大量目錄有大量小檔案

find */ ! -type l | cut -d / -f 1 | uniq -c

命令反覆執行,直至找出具體的目錄

刪除方法

  1. 直接刪除目錄
find . -type f -exec rm {} \;
  1. 安裝檔案inode節點刪除檔案
find . -inum 342137 -exec rm -i {} \;