linux系统inode占满故障处理

Linux系统inode占满故障处理



众所周知,文件系统中inode编码是指向磁盘block的唯一编号,若服务器遭入侵或日志文件将磁盘inode资源编号耗尽,新数据无法获取inode编号导致无法存储。举例说明:在磁盘中/boot独立分区中查看现有inode资源并通过for循环创建大量文件占用耗尽inode编号,导致磁盘无法写入内容,最后进行处理故障。


[[email protected] ~]#  df -i /boot/                                 #查看inode编号

Filesystem     Inodes IUsed IFree IUse% Mounted on

/dev/sda1      1024064   38 1024026  1%   /boot

[[email protected] ~] for i in {358..1024500}; do touch  file$i;done

[[email protected] ~]# df -i /boot                                 #发现inode占满

Filesystem       Inodes   IUsed IFree IUse%  Mounted on

/dev/sda1      1024064 1024064     0   100% /boot

[[email protected] ~]#  cd /boot

[[email protected]  boot]# touch 123.txt                            #创建文件无法成功

touch: cannot  touch ‘123.txt’: No space left on device

 方法一:通过传统方式利用for循环删除文件,但是比较缓慢

[[email protected] ~] for i in {950000..1024500}; do rm -rf  file$i;done #一点的删除

 方法二:利用传参数的方法快速有效的删除文件

[[email protected] boot]# ls file{400000..500000}|xargs rm 最为有效的方法,传参数

[[email protected] boot]# ll file{600000..700000}|xargs rm ll列出的参数过多,传给rm

ls: cannot access file600000: No such file or directory 时,rm不识别,因此通过

rm: invalid option -- ‘w‘                                ls显示出独立的文件名进

Try ‘rm --help‘ for more information.                    行传递。

rm: invalid option -- ‘w‘

时间: 2024-10-06 17:23:45

linux系统inode占满故障处理的相关文章

Linux磁盘空间占满故障处理

Linux磁盘占满 当磁盘被某大文件占满时,而且此大文件正在被某些进程读写并占用着,此时无法删除和置空此文件,只能先找到占用大文件的进程,然后终止进程,最后置空此文件. 实例如下:在/boot分区中创建大文件test,将boot分区的磁盘占满,通过另外一个终端进入主机,vim编辑此test文件,模拟大文件被vim进程占用,然后删除和清空此test文件. 终端1 [[email protected] ~]# df -h  /boot/                                

云服务器 ECS Linux 系统 CPU 占用率较高问题排查思路

https://help.aliyun.com/knowledge_detail/41225.html?spm=5176.7841174.2.2.ifP9Sc 注意:本文相关配置及说明已在 CentOS 6.5 64 位操作系统中进行过测试.其它类型及版本操作系统配置可能有所差异,具体情况请参阅相应操作系统官方文档. 如果云服务器 ECS Linux 系统的 CPU 持续跑高,则会对系统稳定性和业务运行造成影响.本文对 CPU 占用率较高问题的排查分析做简要说明. CPU 负载查看方法 使用 v

Linux系统inode和block知识详解

1. inode和block概述 在每个Linux存储设备或存储设备的分区被格式化(ext3,ext4等)之后,一般都有两部分:一部分是inode,另一部分是block.block是用来存储实际数据的,而inode用来存储这些数据的属性信息,包括文件的大小.属主.归属的用户组.读写权限.文件类型.修改时间,还包含指向文件实体的指针功能(inode节点到block的对应关系)等,但并不包含文件名.文件名一般被存储在其所在目录的block里面. inode除了记录文件属性信息外,还会为每个文件进行信

记一次Linux磁盘空间占满无法删除的故障

问题介绍 近日发现公司服务器的磁盘空间越来越满,感觉快要爆掉的感觉,于是开始着手清清磁盘空间,但是找来找去,发现根目录已经使用了90%以上,可是/下的目录占的空间都非常小,始终找不到占满磁盘空间的大头在哪里. 思考解决方案 按照网上的说法,是因为文件已经删除,但是使用文件的进程还存在,导致空间无法释放.运行如下命令后(最终无效). lsof | grep deleted | awk '{print $2}' | xargs kill -9 因为系统有单独挂载的文件夹,所以想把系统分区还原成还没挂

No space left on device 解决Linux系统磁盘空间满的办法

由于当初安装系统时设计不合理,有些分区分的过小,以及网络通讯故障等造成日志文件迅速增长等其他原因都可能表现为磁盘空间满,造成无法读写磁盘,应用程序无法执行等. (以/home空间满为例): 1. 定期对重要文件系统扫描,并作对比,分析那些文件经常读写 #ls –lR /home >;files.txt #diff filesold.txt files.txt 通过分析预测空间的增长情况,同时可以考虑对不经常读写文件进行压缩,以减少占用空间. 2. 查看空间满的文件系统的inodes消耗 #df

Linux服务器磁盘占满问题解决

今天下班某电商技术部leader发现个问题,说他们服务器硬盘满了.把日志文件都删掉了,可硬盘空间依旧满.于是df -h查看了下各个挂载点的状况(如下图). /dev/sda3占用了100%,那么我们du -s -h ./*看下目录的占用情况(如下图). linux磁盘挂载点目录占用情况(图) 挂载点下的目录之和远小于4.5G,那么是什么占用了硬盘呢? 以下为该问题的解答: 在apache/tomcat服务在运行状态下,清空了运行服务的日志,从而导致了/dev/sda3 满了的问题.一般情况下,大

Inode占满导致No space left on device解决

线上有一台web服务器磁盘检测告警了,提示空间不足,登到服务器查看 touch:cannot touch `furm.html': No space left on device 使用df -h命令查看发现 /data/web分区只使用了2%,创建文件却提示磁盘空间不足,按道理不会出现这种情况的.怀疑是inode耗尽导致. 分析导致的原因:使用df –i查看发现inode已经耗尽,则系统上将不能创建文件 查找原因并解决 /data/web是线上业务数据目录,其中有个程序产生大量的小文件造成的.可

磁盘被占满   系统出现 no space left on 报错(block被占满/inode被占满)

系统出现 no space left on 报错 但是使用df -h 发现磁盘并没有满 企业中在什么情况下会发生 解答: ext4文件系统在格式化的时候会创建inode 和 block 磁盘空间满是由inode和block两个标准来决定的 题意说用df -h 查看没有满 df -h 是查看block块的说明block块没有满所以应使用df -i 查看inode是否满了 1 block被占满 定位问题 查看实际文件占用空间的大小 # find / -type f | xargs du -s | a

Linux 系统磁盘空间占满,df 和 du 结果不一致

服务器运行一段时间后df查看磁盘剩余空间不足,通过du统计发现被几个文件占用,遂删除之.过了一段时间磁盘空间再次不足,通过du统计却找不到那么多大文件.搜索后才得知原因:文件删除后空间没有释放,du统计不到这部分文件:需要通过lsof排查,然后kill文件进程.以下记录排查处理过程: df查看分区使用情况 df(Disk Free) 以磁盘分区为单位查看文件系统,获取硬盘被占用空间和剩余空间等信息.df 默认显示的文件大小单位Byte:使用命令df -h,以KB,MB,GB为单位,提高可读性.