linux下解决索引节点(inode)用满导致故障方法

linux下统计各目录文件数量

mysql 提示 general error: Can't create/write to file '/tmp/#sql_5682_0.MYI'。首先想到的是目录权限问题,但是查看/tmp目录权限是777,排除权限问题。安装网上说换一个目录,此时创建目录提示no space,于是定位到硬盘满了,但是df -h 发现硬盘并没有使用完,网上查看后说可能是inode用完了,使用df -i 查看果然是inode用完了

于是迅速将应用产生的而临时文件、日志删除,但是发现很快又满了。于是猜猜有程序在不断产生小体积的文件,从而导致 inode 先用完,硬盘还没用完。 下一步是要找出那个文件夹内文件数量最多,网上查了下,结合实际修改下脚本如下:

for i in /*; do  c=$(find $i |wc -l); echo $c"    "$i;  done |sort -rn

先在根目录下找出文件数量最多的,然后一层层循环找下去,就可以找出文件数量最多的文件夹(结果是/var/spool/postfix/maildrop 发送失败的邮件)