分析inode爆满问题处理

近期有一台生产服务器出现了inode爆满的情况,准备一个脚本将分析结果写在/data/log/inode-info.log中。

理解inode,从文件储存说起

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

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

  文件数据都储存在"块"中,还必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做inode,中文译名为"索引节点"。每一个文件都有对应的inode,里面包含了与该文件有关的一些信息。

创建分析脚本

[zhupengfei@sh2-svvl-q920 ~]# cat /data/scripts/analyse_inode.sh

#! /bin/bash
base_pach="/data/log/"
function file_num(){
for file in `ls $base_pach`
do
if [ -d $base_pach"/"$file ];then
echo $file
cd $base_pach/$file
echo $(pwd) $(ls -lR|grep "^-"|wc -l)   >> $base_pach/inode-info.log
cd $base_pach
fi
done
}
file_num

结合业务重点分析一下文件,或者迁到别的目录或者直接删掉。

[zhupengfei@sh2-svvl-q920 ~]# find /data/app/backend_xxx/logs/ -mtime +7 -type f -exec rm {} \;
上一篇
下一篇