当前位置:首页 > 技术分享 > 正文内容

Linux/centos inode 占用100%的解决办法

admin4年前 (2021-07-23)技术分享2890


当你的 Linux 系统无法创建新文件时,有可能是你的磁盘满了,还有可能是你的磁盘的 inode 用光了,我们今天要说的就是后一种情况,要解决这个问题,只能是删除一些文件,但是一般情况下,其实是你的系统中的某个地方产生了大量的你并不需要的文件,你要做的就是找到他们并删除就可以了,我并不是让你删除你有用的文件,因为你一般不会有那么多有用的文件来把系统的 inode 用光。

什么是 inode ?

文件储存在硬盘上,硬盘的最小存储单位叫做”扇区”(Sector)。每个扇区储存512字节(相当于0.5KB)。

操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个”块”(block)。这种由多个扇区组成的”块”,是文件存取的最小单位。”块”的大小,最常见的是4KB,即连续八个 sector组成一个 block。

文件数据都储存在”块”中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做inode,中文译名为”索引节点”。

每一个文件都有对应的inode,里面包含了与该文件有关的一些信息。

如何查看系统的 innode 占用情况

df -i

如何查找那个目录下文件最多

首先切到根目录  /

cd /

然后执行

for i in /*; do echo $i ; find $i | wc -l; done

或者(以下命令可以任意目录执行)

for i in `ls -1A | grep -v "\.\./" | grep -v "\./"`; do echo "`find $i | sort -u | wc -l` $i"; done | sort -rn | head -10

这样会依次返回 / 目录下文件最多的目录,进入这个目录,再执行上述命令,就这样层层深入最终确定是那个目录文件最多


如何删除那个目录的的所有文件

一般情况下,如果这个目录下应该会有数以百万的文件,如果你直接用  rm -rf 目录名  的话效率会很低,可以用下面方法

find 目录 - type f -name '*' -print0 | xargs - 0 rm

时间可能会比较久,所以你最好开一个 screen 来处理

有可能是你遇到了下面的情况

/var/spool/postfix/maildrop 下面有很多文件该目录为cron计划任务时记录的日志文件

为了避免,可以执行  crontab -e

在最开头添加  MAILTO=""  保存 这样就不会记录日志了,然后  server crond restart  重启 crond

可以执行

cd /var/spool/postfix/maildrop

rm -rf * //命令删除所有文件如果太多这个命令会报错,可以用下面的命令

ls | xargs -n 10 rm -rf 循环删除


查询目录下文件数

ls -l | grep -v '^d' | wc -l

find . -maxdepth 1 -type f | wc -l

ls -l | awk 'BEGIN {c=0} /^-/ {c++} END {print c}'

————————————————

版权声明:本文为CSDN博主「ganggang4321」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/ganggang4321/article/details/89952626


扫描二维码推送至手机访问。

版权声明:本文由小刚刚技术博客发布,如需转载请注明出处。

本文链接:http://blog.bitefu.net/post/187.html

分享给朋友:

相关文章

贾氏鸣天鼓健耳养肾操

贾氏鸣天鼓健耳养肾操

《贾氏鸣天鼓健耳养肾操》鸣天鼓是健耳强肾治耳病的古法,贾氏越云自创的鸣天鼓健耳养肾操是在古法的基础上创建。顺序:1静坐挺胸。2双手放心脏位置的胸口,左手掌盖住右手掌。3闭目静心,深呼吸19下。4双手相互搓揉,让手掌发热。5用发热的双手手掌严...

PHP AES加解密 (ECB模式/sha1prng算法/PKCS5Padding和PKCS7Padding补码) ECB 模式不需求设置 iv

php7+ 版本/**  * [AesSecurity aes加密,支持PHP7+]  * 算法模式:ECB  * 密钥长度:128  * 补...

七牛html js上传带进度条源码

七牛html js上传带进度条源码注册链接https://s.qiniu.com/uM7RJv完整代码下载:https://n802.com/f/349707-489018989-c141f6(访问密码:5036)http://www.yi...

安卓模拟器连接端口 及常用命令

下面是我总结和测试通过的:有的是搜集来的模拟器名称                     &nbs...

msixbundle怎么打开?win10后缀.MSIX安装包怎么安装使用

msixbundle怎么打开?win10后缀.MSIX安装包怎么安装使用

扩展名为 .msix的文件是Windows应用程序安装程序。微软推出的MSIX 作为EXE,MSI甚至AppX 软件包的替代品。在Windows 10中打开一个.MSIX 文件并开始安装打包的应用程序,只需双击该文件即可。但有也有不少朋友会...

redis 设置过期Key 的 maxmemory-policy 六种方式

平时会用到redis 当缓存过多时会遇到下面的报错OOM command not allowed when used memory > 'maxmemory'这说明redis的缓存满了我们可以通过修改过期策略来修改cd...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。