日日噜噜夜夜狠狠久久丁香五月,人人摸人人操,人人妻人人,添人人爽,欧美一区,色婷婷综合缴情综,欧美午夜精品久久久久久浪潮

<>
文檔首頁> 網(wǎng)維技術(shù)> Linux/centos inode 占用100%的解決辦法

Linux/centos inode 占用100%的解決辦法

發(fā)布時(shí)間:2024-09-21 11:00        更新時(shí)間:2024-09-24 18:16

當(dāng)你的 Linux 系統(tǒng)無法創(chuàng)建新文件時(shí),有可能是你的磁盤滿了,還有可能是你的磁盤的 inode 用光了,我們今天要說的就是后一種情況,要解決這個(gè)問題,只能是刪除一些文件,但是一般情況下,其實(shí)是你的系統(tǒng)中的某個(gè)地方產(chǎn)生了大量的你并不需要的文件,你要做的就是找到他們并刪除就可以了,我并不是讓你刪除你有用的文件,因?yàn)槟阋话悴粫?huì)有那么多有用的文件來把系統(tǒng)的 inode 用光。
什么是 inode ?
文件儲(chǔ)存在硬盤上,硬盤的最小存儲(chǔ)單位叫做”扇區(qū)”(Sector)。每個(gè)扇區(qū)儲(chǔ)存512字節(jié)(相當(dāng)于0.5KB)。
操作系統(tǒng)讀取硬盤的時(shí)候,不會(huì)一個(gè)個(gè)扇區(qū)地讀取,這樣效率太低,而是一次性連續(xù)讀取多個(gè)扇區(qū),即一次性讀取一個(gè)”塊”(block)。這種由多個(gè)扇區(qū)組成的”塊”,是文件存取的最小單位。”塊”的大小,最常見的是4KB,即連續(xù)八個(gè) sector組成一個(gè) block。
文件數(shù)據(jù)都儲(chǔ)存在”塊”中,那么很顯然,我們還必須找到一個(gè)地方儲(chǔ)存文件的元信息,比如文件的創(chuàng)建者、文件的創(chuàng)建日期、文件的大小等等。這種儲(chǔ)存文件元信息的區(qū)域就叫做inode,中文譯名為”索引節(jié)點(diǎn)”。
每一個(gè)文件都有對應(yīng)的inode,里面包含了與該文件有關(guān)的一些信息。

現(xiàn)象:我們在創(chuàng)建文件的時(shí)候提示:No space left on device

[root@localhost ~]# touch test
touch: cannot touch ‘test’: No space left on device
[root@localhost ~ ]# 

此時(shí),查看inode信息:可以看到已經(jīng)沒有空閑的inodes。而此時(shí),我們的服務(wù)器磁盤是有空間的。

[root@localhost ~ ]# df -i
Filesystem      Inodes   IUsed   IFree IUse% Mounted on
/dev/vda1      7208960 7208960       0  100% /     #indoes占用100%
devtmpfs        998908     325  998583    1% /dev
tmpfs          1001349       7 1001342    1% /dev/shm
tmpfs          1001349     387 1000962    1% /run
tmpfs          1001349      16 1001333    1% /sys/fs/cgroup
tmpfs          1001349       1 1001348    1% /run/user/0

原因:

大多數(shù)情況下是由于文件數(shù)量過多所引起的,只需要?jiǎng)h除無用的就好了。

第一步:查找哪個(gè)目錄下文件最多

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

這樣會(huì)依次返回 / 目錄下文件最多的目錄,文件數(shù)越多說明Inode占用越高。請您根據(jù)實(shí)際環(huán)境進(jìn)行操作。進(jìn)入這個(gè)目錄,再執(zhí)行上述命令,就這樣層層深入最終確定那個(gè)目錄文件最多。

第二步:刪除那個(gè)目錄的所有文件(根據(jù)實(shí)際情況刪除多余的垃圾文件)

[root@localhost ~ ]# find 路徑 -type f -name '*.txt' -print0 | xargs -0 rm -rf

這個(gè)命令的作用是查找當(dāng)前目錄及其子目錄下所有文件,并使用rm命令刪除這些文件。

xargs命令默認(rèn)將輸入作為參數(shù),以空格作為分隔符。但是,如果輸入中包含空格或其他特殊字符,則需要使用-0、--mull選項(xiàng)指定用0作為分隔符。

具體來說,find命令用于查找當(dāng)前目錄及其子目錄下的.txt文件,其選項(xiàng)和參數(shù)含義如下:

 .︰表示從當(dāng)前目錄開始查找。

 -type f:表示只查找普通文件,不包括目錄、符號(hào)鏈接等。

 -name "*.txt":表示查找擴(kuò)展名為.txt 文件。

 -print0:表示輸出結(jié)果時(shí)用空字符(\0)分隔每個(gè)結(jié)果。

 | xargs -0 rm -rf:將find命令的輸出結(jié)果傳遞給xargs命令,并使用-0選項(xiàng)指定用空字符\0)分隔每個(gè)輸入?yún)?shù),然后刪除這些文件。

總之,這個(gè)命令可以用來快速刪除當(dāng)前目錄及其子目錄下文件。

 

增加inode數(shù)量的方法

如果清理文件后inode使用率仍然較高,則您需要通過備份數(shù)據(jù)、重新格式化磁盤來增加inode數(shù)。

注意:inode數(shù)量的調(diào)整需要重新格式化磁盤,磁盤內(nèi)的數(shù)據(jù)將被刪除,請確保數(shù)據(jù)已經(jīng)得到有效備份后,再進(jìn)行以下操作。

示例如下,請根據(jù)實(shí)際環(huán)境進(jìn)行替換

1.卸載/home

#umount /home

2.重建文件系統(tǒng),增加inode節(jié)點(diǎn)數(shù)

#mkfs.ext4 /dev/vdb1 -N 1638400

3.重新掛載目錄

#mount /dev/vdb1 /home

4.查看并確認(rèn)修改后的inode節(jié)點(diǎn)數(shù)

#dumpe2fs -h /dev/vdb | grep node