例如碰到磁盘空间还剩很多却无法创建文件等,大概率就是inode占满导致。
首先,需要理解inode的概念。在Linux文件系统中,inode是文件系统中用于记录文件元数据的数据结构,包括文件的字节数、时间戳、所有者、组、权限等信息。每个文件和目录都有一个inode,它包含了指向文件数据块的指针。 因此我们根据他的特性一个文件占用一个inode,过高就是文件太多导致。一般文件数量多的为日志,程序的客户端会话缓存文件等。
1.根据上述的特性我们就去找相对文件多的目录去排查
#首先df -i查看inode的占比
devtmpfs 464023 332 463691 1% /dev
tmpfs 466667 5 466662 1% /dev/shm
tmpfs 466667 456 466211 1% /run
tmpfs 466667 16 466651 1% /sys/fs/cgroup
/dev/vda1 2621440 90366 2531074 4% /
tmpfs 466667 1 466666 1% /run/user/0
#随后查看根目录下所有目录的占比
for i in /*; do echo $i; find $i | wc -l; done
2.根据for循环出来的目录一层一层的寻找
#例如看www/目录下的
for i in /www/*; do echo $i; find $i | wc -l; done
/www/backup
26
/www/disk.pl
1
/www/reserve_space.pl
1
/www/server
17836
/www/wwwlogs
17
/www/wwwroot
2
3.查询到占比比较高的并且对业务无影响的一些缓存文件或者是日志文件进行清理
#例如占比高的文件在/www目录中,清理近30天的文件
find /www -mtime +30 -exec rm {} \;