Linux索引節點 Inode 用滿導致空間不足

2021-08-16 00:04:36 字數 1460 閱讀 9349

1、問題:

在建立新目錄和檔案是提示「no space left on device」!按照以前的情況,很有可能是伺服器空間又被塞滿了,通過命令檢視,發現還有剩餘。

再用df -i檢視了一下/分割槽的索引節點(inode),發現已經用滿(已用=100%),導致系統無法建立新目錄和檔案。

2、問題原因分析:

inode譯成中文就是索引節點,每個儲存裝置(例如硬碟)或儲存裝置的分割槽被格式化為檔案系統後,應該有兩部份,一部份是inode,另一部份是 block,block是用來儲存資料用的。而inode呢,就是用來儲存這些資料的資訊,這些資訊包括檔案大小、屬主、歸屬的使用者組、讀寫許可權等。 inode為每個檔案進行資訊索引,所以就有了inode的數值。作業系統根據指令,能通過inode值最快的找到相對應的檔案。

而這台伺服器的block雖然還有剩餘,但inode已經用滿,因此在建立新目錄或檔案時,系統提示磁碟空間不足。

inode的數量是有限制的,每個檔案對應乙個inode,那麼如何檢視inode的最大數量呢?

可以看到inode的總量,已經使用的inode數量,和剩餘數量。

3、解決:

1)查詢滿的目錄:

[root@abc sbin]# for i in /*; do echo $i; find $i | wc -l; done

/bin

121...

/sys

8145

/tmp

7/usr

56840

/var

8019

然後找到inode占用最多額目錄下,再用上面命令檢視。

2)刪除檔案占用多的目錄:

進入目錄直接rm -rf 可能會卡死,可以使用下面方式:

find dir -type f -name '*'  | xargs rm
或者

cd dir

ls | xargs rm -f

4、拓展:

系統中有使用者開啟了cron,而cron中執行的程式有輸出內容,輸出內容會以郵件形式發給cron的使用者,而sendmail沒有啟動所以就產生了這些檔案;

解決辦法:

將crontab裡面的命令後面加上 > /dev/null 2>&1 或者crontab裡面的命令後面加上 > /dev/null

Linux 索引節點 inode

理解 inode,要從檔案儲存說起。檔案儲存在硬碟上,硬碟的最小儲存單位叫做 扇區 sector 每個扇區儲存 512 位元組 相當於 0.5kb 作業系統讀取硬碟的時候,不會乙個個扇區地讀取,這樣效率太低,而是一次性連續讀取多個扇區,即一次性讀取乙個 塊 block 這種由多個扇區組成的 塊 是檔...

Linux索引節點 Inode 用滿導致空間不足

在建立新目錄和檔案是提示 no space left on device 按照以前的情況,很有可能是伺服器空間又被塞滿了,通過命令檢視,發現還有剩餘。再用df i檢視了一下 分割槽的索引節點 inode 發現已經用滿 已用 100 導致系統無法建立新目錄和檔案。inode譯成中文就是索引節點,每個儲...

linux 索引節點 inode 詳解

1 inode簡介 理解inode,要從檔案儲存說起。檔案儲存在硬碟上,硬碟的最小儲存單位叫做 扇區 sector 每個扇區儲存512位元組 相當於0.5kb 作業系統讀取硬碟的時候,不會乙個個扇區地讀取,這樣效率太低,而是一次性連續讀取多個扇區,即一次性讀取乙個 塊 block 這種由多個扇區組成...