Linux df排查inode已滿及解決方法
問題分析
收到監控告警,有些任務報磁碟不足的錯誤,通常磁碟只讀一般的常見原因:
-
磁碟空間滿:可以通過df -h命令檢視磁碟的使用情況,然後刪除多餘的檔案釋放磁碟空間;
-
磁碟inode資源佔用完:可以通過df -i命令檢視,確認相關的程序;
判斷可能是4.59和4.60兩臺機器跟磁碟滿了
通過df檢視一下:
跟磁碟並沒有滿,檢視下inode使用率:

df命令作用是列出檔案系統的整體磁碟空間使用情況。可以用來檢視磁碟已被使用多少空間和還剩餘多少空間。
df命令可以參考這篇 linux命令詳解之df命令
df -i:

看到60的inode滿了,刪除4.60上的小檔案即可。
後續
df -h顯示磁碟佔用是沒有問題;但是df -i顯示磁碟inode資源佔用完。
inode譯成中文就是索引節點,每個儲存裝置(例如硬碟)或儲存裝置的分割槽被格式化為檔案系統後,應該有兩部份,一部份是inode,另一部份是Block,Block是用來儲存資料用的。而inode呢,就是用來儲存這些資料的資訊,這些資訊包括檔案大小、屬主、歸屬的使用者組、讀寫許可權等。inode為每個檔案進行資訊索引,所以就有了inode的數值。作業系統根據指令,能通過inode值最快的找到相對應的檔案。
這種情況的原因通常是:儘管那個分割槽的磁碟佔用率未滿,但是inode已經用完,應該是該磁碟的某些目錄下存在大量的小檔案導致。儘管小檔案佔用的磁碟空間並不大,但是數量太多,inode用盡。
通過ls命令配合wc命令,可以檢視某個資料夾下的檔案數量。例如:
ls -lt /tmp | wc -l 4011517
wc命令用來計算數字。利用wc指令我們可以計算檔案的Byte數(-b)、字數(-w)或是列數(-l)。
至於解決方案,可以參考文章: linux inode已滿解決方法
參考: